ablog

不器用で落着きのない技術者のメモ

Oracle でデータベースを手動で作成してみる

Oracle でデータベースを手動で作成してみた。環境は Oracle10gR2(10.2.0.4) on Solaris10
細かいことは気にせずにとりあえず作ってみる。わかちこわかちこ〜

$ mkdir -p $ORACLE_BASE/admin/matrix/scripts
$ mkdir -p $ORACLE_BASE/oradata/matrix
  • 初期化パラメータファイルを作成する。
$ vi $ORACLE_HOME/dbs/initmatrix.ora
control_files = (/export/home/oracle/oradata/matrix/control01.ctl)
db_name = matrix
db_block_size = 8192
undo_management = AUTO
undo_tablespace = undotbs
compatible = 10.2.0
shared_pool_size = 100M
$ vi $ORACLE_BASE/admin/matrix/scripts/create_database.sql
CREATE DATABASE matrix
   LOGFILE GROUP 1 ('/export/home/oracle/oradata/matrix/redo01.log') SIZE 100M,
   GROUP 2 ('/export/home/oracle/oradata/matrix/redo02.log') SIZE 100M,
   GROUP 3 ('/export/home/oracle/oradata/matrix/redo03.log') SIZE 100M
   MAXLOGFILES 5
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 1
   MAXDATAFILES 100
   MAXINSTANCES 1
   CHARACTER SET JA16SJISTILDE
   NATIONAL CHARACTER SET AL16UTF16
   DATAFILE '/export/home/oracle/oradata/matrix/system01.dbf' SIZE 50M REUSE
      AUTOEXTEND ON
   SYSAUX DATAFILE '/export/home/oracle/oradata/matrix/sysaux01.dbf' SIZE 50M REUSE
      AUTOEXTEND ON
   DEFAULT TEMPORARY TABLESPACE temp
      TEMPFILE '/export/home/oracle/oradata/matrix/temp01.dbf' 
      SIZE 20M REUSE
      AUTOEXTEND ON
   UNDO TABLESPACE undotbs 
      DATAFILE '/export/home/oracle/oradata/matrix/undotbs01.dbf'
      SIZE 50M REUSE AUTOEXTEND ON;
  • データベースを作成する。
$ cd /export/home/oracle/admin/matrix/scripts
$ export ORACLE_SID=matrix
$ sqlplus / as sysdba
SQL> spool create_database.log
SQL> startup nomount
SQL> @create_database
SQL> spool off
  • 動的パフォーマンスビュー、データ・ディクショナリビューと標準PL/SQLパッケージを作成する。
SQL> spool build.log
SQL> @?/rdbms/admin/catalog
SQL> @?/rdbms/admin/catproc
  • 一般ユーザーでSQL*Plusでデータベースに接続時にエラーメッセージが表示されないようSQL*Plusの製品情報を作成する。
SQL> conn system/manager
SQL> @?/sqlplus/admin/pupbld
SQL> spool off
  • 表領域を作成する。
SQL> create bigfile tablespace users datafile '/export/home/oracle/oradata/matrix/user01.dbf' size 5m;
SQL> alter database default tablespace users;
  • REDOロググループを追加する。
SQL> alter database add logfile group 4('/export/home/oracle/oradata/matrix/redo04.log') size 10m;
  • REDOロググループを多重化する。
SQL> alter database add logfile member
'/export/home/oracle/oradata/matrix/redo11.log' to group 1,
'/export/home/oracle/oradata/matrix/redo12.log' to group 2,
'/export/home/oracle/oradata/matrix/redo13.log' to group 3,
'/export/home/oracle/oradata/matrix/redo14.log' to group 4;
  • 制御ファイルを多重化する。
SQL> shutdown immediate
SQL> exit
$ vi $ORACLE_HOME/dbs/initmatrix.ora
control_files=(/export/home/oracle/oradata/matrix/control01.ctl,/export/home/oracle/oradata/matrix/control02.ctl,/export/home/oracle/oradata/matrix/control03.ctl)
$ cd /export/home/oracle/oradata/matrix
$ cp control01.ctl control02.ctl
$ cp control01.ctl control03.ctl
$ sqlplus / as sysdba
SQL> startup
  • ユーザを作成する。
SQL> create user scott identified by tiger
default tablespace users
temporary tablespace temp
quota unlimited on users;
SQL> grant create session, create table to scott;
  • SPFILEに変更する。
SQL> create spfile from pfile='?/dbs/initmatrix.ora';
SQL> shutdown immediate
SQL> quit
$ cd $ORACLE_HOME/dbs
$ mv initmatrix.ora initmatrix.ora.org
$ sqlplus / as sysdba
SQL> startup
SQL> show parameter spfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /export/home/oracle/product/10
                                                 .2.0/db_1/dbs/spfilematrix.ora

[参考]
Oracle Databaseの作成