Toon posts:

[Oracle XE] Database aanmaken

Pagina: 1
Acties:
  • 925 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Kan iemand mij helpen? Ik wordt helemaal gek van een database aanmaken in Oracle. Deed het altijd via de user interface maar moet het nu eigenlijk via een script doen. Ik heb dus een script gemaakt. Ik gebruik ORACLE 10g XE

Ik krijg alleen weer zo'n mooie ora error:
ORA-01092: ORACLE instance terminated. Disconnection forced.
Ik snap niet waar hij vandaan komt. Hij staat op de lijn:
CREATE DATABASE vdsmcast;

De script zal ik even hier plaatsen.
---------------------- initdb.bat:

@echo off
sqlplus / as sysdba @createdb.sql

--------------------- createdb.sql

SHUTDOWN;
STARTUP NOMOUNT PFILE=vdsmcast.ora;
CREATE DATABASE vdsmcast;

----------------------- vdsmcast.ora

# Cache and I/O
DB_BLOCK_SIZE=4096
DB_CACHE_SIZE=20971520

# Cursors and Library Cache
CURSOR_SHARING=SIMILAR
OPEN_CURSORS=300

# Control File Configuration
CONTROL_FILES=("/control01.ctl",
"/control02.ctl",
"/control03.ctl")

# Archive
LOG_ARCHIVE_FORMAT=%t_%s.dbf

# Shared Server
# Uncomment and use first DISPATCHES parameter below when your listener is
# configured for SSL
# (listener.ora and sqlnet.ora)
# DISPATCHERS = "(PROTOCOL=TCPS)(SER=MODOSE)",
# "(PROTOCOL=TCPS)(PRE=oracle.aurora.server.SGiopServer)"
#DISPATCHERS="(PROTOCOL=TCP)(SER=MODOSE)",
# "(PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)",
# (PROTOCOL=TCP)

# Miscellaneous
COMPATIBLE=9.2.0
DB_NAME=vdsmcast

# Distributed, Replication and Snapshot
DB_DOMAIN=us.oracle.com
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

# Network Registration
INSTANCE_NAME=vdsmcast

# Automatic Undo Management
UNDO_MANAGEMENT=AUTO
UNDO_TABLESPACE=undotbs

Kan iemand mij hiermee helpen? Alvast bedankt!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18:15

Creepy

Tactical Espionage Splatterer

Waarom stop je Oracle in je script en start je het vervolgens weer op met de NOMOUNT optie?
Oracle op de normale manier starten lijkt me beter. Vervolgens is alleen je CREATE DATABASE statement nodig om een nieuwe DB aan te maken.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 20-02 23:48

JaQ

Vergeet je niet dat je je huidige instance (en als het op windows is, ook je service) stopt voordat je een nieuwe database aanmaakt? Met XE kan je immers maar 1 instance draaien (+ nog wat beperkingen). Verder zal je voordat je je database aanmaakt nog een passwordfile (met orapwd) aan moeten maken en als je op windows zit ook nog een service (met oradim).

Misschien is het verstandiger om een volledige versie van de database te downloaden en te installeren. Dan heb je netjes een DBCA en kan je gewoon een database aanmaken. (Een ontwikkelaar is nou eenmaal geen DBA ;) )

@creepy: dit is de manier om met de hand een database aan te maken binnen Oracle ;)

Egoist: A person of low taste, more interested in themselves than in me


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18:15

Creepy

Tactical Espionage Splatterer

JaQ: als je dat zegt dan zal dat wel. Maar de SHUTDOWN in een script om een DB aan te maken is nogal erg vreemd. Met Oracle 8/9 heb ik dat soort zaken niet nodig gehad.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 20-02 23:48

JaQ

Creepy schreef op zaterdag 06 mei 2006 @ 17:56:
JaQ: als je dat zegt dan zal dat wel. Maar de SHUTDOWN in een script om een DB aan te maken is nogal erg vreemd. Met Oracle 8/9 heb ik dat soort zaken niet nodig gehad.
Je kan het als "veiligheid" inbouwen om te voorkomen dat je met een draaiende database connect. Echt nodig is het niet, daar heb je wel gelijk in. Normaalgesproken zet je je ORACLE_SID environment variabele eerst, waardoor deze veiligheid zeker niet meer nodig is.

Op zich is XE een "normale" Oracle 10 database, met wat beperkingen (1 instance per machine, max 1 GB geheugengebruik en max 4 GB datafiles). Er wordt standaard al een instance gecreeerd als je XE installeerd, het nu van opnieuw een instance aanmaken ontgaat me een beetje (zeker aangezien je gewoon alles in kan stellen zoals je wilt), maar dat was niet de vraag.

Ik zie wel problemen komen langszamerhand door dingen als XE en 2-day DBA cursussen. Het vak van Oracle DBA lijkt zo langzamerhand gedegradeerd te worden tot bijzaak van een ontwikkelaar, terwijl dat IMHO niet terecht is. Een beetje kunnen klikken in een website voor database beheer is niet hetzelfde als DBA zijn. Hetzelfde probleem zie ik met de applicatie server gebeuren. Beetje jammer allemaal, zeker aangezien ik hierdoor regelmatig poep aan het scheppen ben.

Egoist: A person of low taste, more interested in themselves than in me


Verwijderd

Topicstarter
CREATE DATABASE werkt niet als je hem niet hebt opgestart met NOMOUNT. Hoezo in een script? Omdat ik dit moet maken voor een klant welke bij zijn/haar software pakket onder andere de ORACLE database optie wil geven maar de mensen die het pakket installeren hebben geen kennis van ORACLE. Om de database dus automatisch te creeeren dient dit script (welke nog niet werkt). Ik heb met de volledige ORACLE 10g gewerkt en daar zit inderdaad een java script applicatie in waarmee je een database kunt maken. ORACLE is echter vrij prijzig in de licenties en daarom is gekozen om met de XE versie te werken. Het moet echter wel mogelijk zijn via een script.

JaQ schrijft: Verder zal je voordat je je database aanmaakt nog een passwordfile (met orapwd) aan moeten maken en als je op windows zit ook nog een service (met oradim).

Moet dit gebeuren voordat je de CREATE DATABASE aanroept? En zo ja heb je daar dan misschien een voorbeeldje van?

Creepy: Dat shutdown komt waarschijnlijk omdat er maar 1 instance van gedraaid kan worden.

JaQ: Ik zie wel problemen komen langszamerhand door dingen als XE en 2-day DBA cursussen. Het vak van Oracle DBA lijkt zo langzamerhand gedegradeerd te worden tot bijzaak van een ontwikkelaar, terwijl dat IMHO niet terecht is. Een beetje kunnen klikken in een website voor database beheer is niet hetzelfde als DBA zijn. Hetzelfde probleem zie ik met de applicatie server gebeuren. Beetje jammer allemaal, zeker aangezien ik hierdoor regelmatig poep aan het scheppen ben.

Hmm refereert dat een beetje aan mij? Ik ben zeker wel DBA maar heb nu gewoon 1 probleem met de database creeeren. Ik heb echter nog mijn inziens geen echt inhoudelijk antwoord voorbij zien komen. ORACLE is een heel mooi systeem alleen dit soort problemen zijn echt een ramp om te gebruiken. (verder ben ik ook niet echt fan van de sequences en triggers voor auto_increment maar dat even ter zijde). Heeft nou iemand een idee wat ik zou moeten/kunnen doen om het script wel werkend te krijgen?

  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 20-02 23:48

JaQ

Eerst ter zake: voor je pwdfile moet je het volgende doen (komt wel van een 9.2 af, maar werkt in principe hetzelfde):

code:
1
2
3
4
set ORACLE_SID=DATABASE_NAAM
C:\oracle\ora92\bin\oradim.exe -new  -sid DATABASE_NAAM -startmode m
C:\oracle\ora92\bin\oradim.exe -edit  -sid DATABASE_NAAM -startmode a
C:\oracle\ora92\bin\orapwd.exe file=C:\oracle\ora92\database\PWDDATABASE_NAAM.ora password=change_on_install


Met oradim.exe maak je dus een windows service aan (de startmode switch was een bug in 9.2, weet niet of die er bij XE nog in zit). orapwd.exe maakt een password file aan.

Hierna kan je gaan beginnen met het aanmaken van je nieuwe database, met create database nomount inderdaad. Die nomount is omdat je nog data files moet gaan aanmaken. Ook heb je een correcte init.ora nodig. Al met al een aardig stukje scripten wat best lastig is als je dat nog nooit eerder gedaan hebt.

Denk je trouwens ook even om je backups? Als je hot backups wil maken, kan je gewoon rman gebruiken (bijvoorbeeld vanaf een 10g administrator client ;) ).
Verwijderd schreef op maandag 08 mei 2006 @ 13:23:
Hmm refereert dat een beetje aan mij? Ik ben zeker wel DBA maar heb nu gewoon 1 probleem met de database creeeren. Ik heb echter nog mijn inziens geen echt inhoudelijk antwoord voorbij zien komen. ORACLE is een heel mooi systeem alleen dit soort problemen zijn echt een ramp om te gebruiken. (verder ben ik ook niet echt fan van de sequences en triggers voor auto_increment maar dat even ter zijde). Heeft nou iemand een idee wat ik zou moeten/kunnen doen om het script wel werkend te krijgen?
Nee ik refereerde eigenlijk niet specifiek aan jou, maar meer wat ik zie gebeuren. Precies wat je ervaren php jongens hoor roepen over html-scripters die opeens een webshop gaan bouwen. Snap je? Het ambachtelijk maken van een database is een vak, niet iets om er even bij te doen. De performance van je systeem valt of staat daar mee.

Nu ik je post nog een keer heb gelezen, hap ik toch nog even door....

Ik ga er in ieder geval niet van uit dat je Oracle DBA bent, als je nog niet hebt uitgevonden wat een password file is (terwijl je wel je remote_login_passwordfile op exclusive in je init.ora hebt gezet), je moeite hebt om een database te creeeren vanaf een prompt, een matig performende 4k voor db_block_size kiest en voor een 9.2 compatible mode kiest (met bijbehorende verminderd presterrende optimizer). Het commentaar over MTS, cursor_sharing en archive_logs laat ik dan nog maar even achterwege.

Iedere zichzelf respecterende Oracle DBA maakt databases met de hand aan (bij uitzondering met DBCA, maar dan enkel om het script na het genereren met de hand aan te passen). Wat ik uit je startpost aflas, is dat je gelezen of gehoord had dat het mogelijk is om een database met de hand aan te maken.

Flamen is echter niet helemaal de bedoeling hier, dus ik hoop dat ik je toch een beetje op weg hebt geholpen. Eigenlijk zou ik je naar http://otn.oracle.com moeten verwijzen, aangezien daar de documentatie staat. Ook zou ik je richting http://asktom.oracle.com kunnen sturen als je wat meer wilt leren over wat een DBA nou eigenlijk allemaal uitzoekt. Voor voorbeeld scripts zou ik je richting http://www.oracle-base.com/ moeten sturen, of naar http://www.dizwell.com/. Moet ik het lijstje nog verder aanvullen?

offtopic:
De gemiddelde DBA roept wel dat DBA "does basically anything" of "doet bijna alles" betekend, maar het is toch echt database administrator

[ Voor 63% gewijzigd door JaQ op 09-05-2006 01:30 ]

Egoist: A person of low taste, more interested in themselves than in me


Verwijderd

Topicstarter
Bedankt voor je informatie JaQ, ik zal er eens naar kijken. Ik ben inderdaad geen ervaren ORACLE gebruiker/DBA. Het was niet mijn init.ora. Maar de instellingen heb ik wel gekopieerd uit mijn init.ora die standaard bij de XE installatie wordt gemaakt. Ik heb dus niet gekeken naar, danwel wijzigingen aangemaakt in deze instellingen omdat daarover nog gediscussieerd moet worden (niet hier hoor ;)).

Ik heb echter een site gevonden met informatie over de XE versie die mij er meer informatie over geeft. Zo te lezen heb jij zelf de XE versie niet gebruikt, want deze stelt dat het dus niet mogelijk is om met XE een database aan te maken.

Daar staat het volgende namelijk:
"The third limit is that only a single XE database can run on any given computer. The important point here is that you don't need a database for each application you create, as you might for some competing databases. Instead, Oracle uses the concept of schemas to separate applications."

"When you create a database user, you also create a schema for that user. A schema is a logical container for the database objects (such as tables, views, triggers, and so on) that the user creates. The schema name is the same as the username and can be used to unambiguously refer to objects owned by the database user."

Bron: http://weblogs.asp.net/plip/archive/2006/04/17/443097.aspx

Het zal dus geen create database worden maar een schema maken.

  • D4Skunk
  • Registratie: Juni 2003
  • Laatst online: 20-10-2025

D4Skunk

Kind of Blue

offtopic:
[quote]JaQ schreef op dinsdag 09 mei 2006 @ 01:08:
...
Het commentaar over MTS, cursor_sharing en archive_logs laat ik dan nog maar even achterwege.
[/quote]

Ik heb persoonlijk geen ervaring met oracle10 atm, maar zit die bug mbt cursor_sharing=similar er nog steeds in misschien ? Of had je het gewoon over parametrized queries ?
Van MTS kan ik niet echt iets zeggen; mijn klanten gebruiken in hun apps connection pooling.
Het aspect archivelogging is dan weer een ander verhaal...


Verder denk ik dat het waarschijnlijk hopelijk om een kleine db gaat... Imho is het nog steeds beter om zo'n (minimaal geconfigureerde) Oracle-instance te gebruiken ipv een Access mdb als storage :p

Als 'slechte' oracle dba gebruik ikzelf meestal wel de gui, maar ga dan in alle stappen de details aanpassen.
Het grote voordeel is dan dat je geen enkele stap overslaat (onlangs een db moeten toevoegen aan een 24/7 rac op solaris/oracle9 met raw devices, en ik was blij dat ik de gui had, al ligt dat misschien meer aan mij).

Het opzetten van een nieuwe db gebeurt bij mij zo weinig (een paar keer per jaar), dat ikzelf ook steeds nog ff wat referentiedocs erbij neem. Als dba in een productieomgeving heb je toch meer te maken met performance/capacity/backup/... dan met het opzetten van nieuwe db's imho.

  • JaQ
  • Registratie: Juni 2001
  • Laatst online: 20-02 23:48

JaQ

Verwijderd schreef op dinsdag 09 mei 2006 @ 01:46:
Ik heb echter een site gevonden met informatie over de XE versie die mij er meer informatie over geeft. Zo te lezen heb jij zelf de XE versie niet gebruikt, want deze stelt dat het dus niet mogelijk is om met XE een database aan te maken.

Daar staat het volgende namelijk:
"The third limit is that only a single XE database can run on any given computer. The important point here is that you don't need a database for each application you create, as you might for some competing databases. Instead, Oracle uses the concept of schemas to separate applications."
Ik quote even mezelf.
JaQ schreef op zaterdag 06 mei 2006 @ 16:30:
Vergeet je niet dat je je huidige instance (en als het op windows is, ook je service) stopt voordat je een nieuwe database aanmaakt? Met XE kan je immers maar 1 instance draaien (+ nog wat beperkingen). Verder zal je voordat je je database aanmaakt nog een passwordfile (met orapwd) aan moeten maken en als je op windows zit ook nog een service (met oradim).
Je kan dus wel een nieuwe database aanmaken, zolang je de huidige instance stopt (en op windows dus ook de service). ;) Dit staat overigens ook gewoon in de documentatie van XE ;). Ik weet dit zeker, omdat ik het zelf heb gedaan. Op http://technology.amis.nl en zelfs op mijn eigen web-kladblok (zie profiel) kan je e.e.a aan tips vinden voor XE. Anyway, laat je weten of je er uit bent gekomen?
D4Skunk schreef op dinsdag 09 mei 2006 @ 16:33:
Ik heb persoonlijk geen ervaring met oracle10 atm, maar zit die bug mbt cursor_sharing=similar er nog steeds in misschien ?
Helaas wel :(
D4Skunk schreef op dinsdag 09 mei 2006 @ 16:33:
Van MTS kan ik niet echt iets zeggen; mijn klanten gebruiken in hun apps connection pooling.
Het aspect archivelogging is dan weer een ander verhaal...
MTS kan een probleem zijn, maar bij dit soort kleine omgevingen wordt het zelden gebruikt (maar dan moet je het wel goed in de init.ora zetten, dat bedoelde ik eigenlijk ;)) Hetzelfde geldt voor archive logging (je hebt wel een archive log destination nodig, maar dat kan je op zich on the fly configureren in 10g, zolang je maar een spfile gebruikt zodat je het niet iedere keer op nieuw moet doen)
D4Skunk schreef op dinsdag 09 mei 2006 @ 16:33:
Verder denk ik dat het waarschijnlijk hopelijk om een kleine db gaat... Imho is het nog steeds beter om zo'n (minimaal geconfigureerde) Oracle-instance te gebruiken ipv een Access mdb als storage :p
_/-\o_
D4Skunk schreef op dinsdag 09 mei 2006 @ 16:33:
Als 'slechte' oracle dba gebruik ikzelf meestal wel de gui, maar ga dan in alle stappen de details aanpassen.
Het grote voordeel is dan dat je geen enkele stap overslaat (onlangs een db moeten toevoegen aan een 24/7 rac op solaris/oracle9 met raw devices, en ik was blij dat ik de gui had, al ligt dat misschien meer aan mij).
Had je geen bestaande scripts voor die rac database? (van je andere nodes dus?). Ik kan me echter wel prima voorstellen wat je bedoeld (niemand weet alles uit zijn hoofd toch?)
D4Skunk schreef op dinsdag 09 mei 2006 @ 16:33:
Het opzetten van een nieuwe db gebeurt bij mij zo weinig (een paar keer per jaar), dat ikzelf ook steeds nog ff wat referentiedocs erbij neem. Als dba in een productieomgeving heb je toch meer te maken met performance/capacity/backup/... dan met het opzetten van nieuwe db's imho.
Ik zeg ook niet dat ik alles uit mijn hoofd doe (zeker niet), maar je zegt het precies goed: je pakt wat referentiedocs er bij. Daar staat heel helder en duidelijk in hoe je een database aanmaakt volgens mij....

Egoist: A person of low taste, more interested in themselves than in me

Pagina: 1