Oracle データベース 作成 Windows バッチファイル

Oracle において データベース作成 Windows バッチファイル に関して示す。

用意するファイルは以下です。用意したら、prmanage.bat を実行するだけでデータベースを 作成することができる。汎用的にスクリプトを使用する場合などに便利である。

prmanage.bat

  mkdir C:\prmanage\oracle
  mkdir C:\prmanage_sub\oracle
  mkdir C:\prmanage\oracle\database
  mkdir C:\prmanage\oracle\ctl
  mkdir C:\prmanage_sub\oracle\ctl
  mkdir C:\prmanage\oracle\logn
  mkdir C:\prmanage_sub\oracle\logn
  mkdir C:\prmanage\oracle\admindata
  mkdir C:\prmanage\oracle\data
  mkdir C:\prmanage\oracle\dump\ufile
  mkdir C:\prmanage\oracle\dump\cfile
  mkdir C:\prmanage\oracle\dump\bfile
  mkdir C:\prmanage\oracle\archive

  set ORACLE_SID=prmanage
  set NLS_LANG=JAPANESE_JAPAN.JA16SJIS

  oradim -new -sid PRMANAGE -startmode manual -spfile
  oradim -edit -sid PRMANAGE -startmode auto -srvcstart system

  echo exit | sqlplus /nolog @C:\oracle\product\10.1.0\Db_1\admin\prmanage\scripts\prmanage.sql

prmanage.sql

  set verify off

  PROMPT specify a password for sys as parameter 1;
  DEFINE sysPassword = &1
  PROMPT specify a password for system as parameter 2;
  DEFINE systemPassword = &2

  host orapwd.exe
  file=C:\oracle\product\10.1.0\Db_1\database\PWDprmanage.ora password=&&sysPassword
  force=y

  @C:\oracle\product\10.1.0\Db_1\admin\prmanage\scripts\CreateDB.sql
  @C:\oracle\product\10.1.0\Db_1\admin\prmanage\scripts\CreateDBFiles.sql
  @C:\oracle\product\10.1.0\Db_1\admin\prmanage\scripts\CreateDBCatalog.sql
  @C:\oracle\product\10.1.0\Db_1\admin\prmanage\scripts\postDBCreation.sql

CreateDB.sql

  connect SYS/&&sysPassword as SYSDBA

  set echo on

  spool C:\oracle\product\10.1.0\Db_1\admin\prmanage\scripts\CreateDB.log

  startup nomount pfile="C:\oracle\product\10.1.0\Db_1\admin\prmanage\scripts\init.ora";

  CREATE DATABASE "prmanage"
  MAXINSTANCES 1
  MAXLOGFILES 4
  MAXLOGMEMBERS 3
  MAXDATAFILES 12
  DATAFILE 'C:\prmanage\oracle\admindata\system.dbf'
  SIZE 500M REUSE AUTOEXTEND ON EXTENT MANAGEMENT LOCAL
  SYSAUX DATAFILE 'C:\prmanage\oracle\admindata\sysaux.dbf'
  SIZE 250M REUSE AUTOEXTEND ON EXTENT MANAGEMENT LOCAL
  DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE 'C:\prmanage\oracle\admindata\temp.dbf'
  SIZE 20M REUSE EXTENT MANAGEMENT LOCAL UNIFORM 128K
  UNDO TABLESPACE "UNDOT" DATAFILE 'C:\prmanage\oracle\admindata\undo.dbf'
  SIZE 20M REUSE EXTENT MANAGEMENT LOCAL
  CHARACTER SET JA16EUC
  NATIONAL CHARACTER SET AL16UTF16
  LOGFILE GROUP 1 ('C:\prmanage\oracle\log1\redo_a01.log',
  'C:\prmanage_sub\oracle\log1\redo_a02.log') SIZE 10M,
  GROUP 2 ('C:\prmanage\oracle\log2\redo_b01.log','C:\prmanage_sub\oracle\log2\redo_b02.log')
  SIZE 10M
  USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY "&&systemPassword";

  spool off

CreateDBFiles.sql

  connect SYS/&&sysPassword as SYSDBA

  set echo on

  spool C:\oracle\product\10.1.0\Db_1\admin\prmanage\scripts\CreateDBFiles.log

  CREATE TABLESPACE "TABLES" DATAFILE 'C:\prmanage\oracle\data\tables.dbf' SIZE 1M
  REUSE AUTOEXTEND ON NEXT 200K MAXSIZE 3M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 40K
  SEGMENT SPACE MANAGEMENT AUTO;
  ALTER DATABASE DEFAULT TABLESPACE "TABLES";
  CREATE TABLESPACE "INDEXES" DATAFILE 'C:\prmanage\oracle\data\indexes.dbf' SIZE 1M
  REUSE AUTOEXTEND ON NEXT 200K MAXSIZE 3M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 40K
  SEGMENT SPACE MANAGEMENT AUTO;

  spool off

CreateDBCatalog.sql

  connect SYS/&&sysPassword as SYSDBA

  set echo on

  spool C:\oracle\product\10.1.0\Db_1\admin\prmanage\scripts\CreateDBCatalog.log

  @C:\oracle\product\10.1.0\Db_1\RDBMS\ADMIN\catalog.sql;
  @C:\oracle\product\10.1.0\Db_1\RDBMS\ADMIN\catblock.sql;
  @C:\oracle\product\10.1.0\Db_1\RDBMS\ADMIN\catproc.sql;
  @C:\oracle\product\10.1.0\Db_1\RDBMS\ADMIN\catoctk.sql;
  @C:\oracle\product\10.1.0\Db_1\RDBMS\ADMIN\owminst.plb;

  connect SYSTEM/&&systemPassword
  @C:\oracle\product\10.1.0\Db_1\sqlplus\admin\pupbld.sql;

  conn SYSTEM/&&systemPassword
  set echo on
  @C:\oracle\product\10.1.0\Db_1\sqlplus\admin\help\hlpbld.sql

  spool off

postDBCreation.sql

  connect SYS/&&sysPassword as SYSDBA
  set echo on

  spool C:\oracle\product\10.1.0\Db_1\admin\prmanage\scripts\postDBCreation.log
  shutdown immediate;
  connect SYS/&&sysPassword as SYSDBA
  startup mount pfile="C:\oracle\product\10.1.0\Db_1\admin\prmanage\scripts\init.ora";
  alter database archivelog;
  alter database open;

  connect SYS/&&sysPassword as SYSDBA
  set echo on
  create spfile="C:\oracle\product\10.1.0\Db_1\database\spfileprmanage.ora"
  FROM pfile="C:\oracle\product\10.1.0\Db_1\admin\prmanage\scripts\init.ora";

  connect SYS/&&sysPassword as SYSDBA
  startup;

  select 'utl_recomp_begin: ' || to_char(sysdate, 'HH:MI:SS') from dual;
  execute utl_recomp.recomp_serial();
  select 'utl_recomp_end: ' || to_char(sysdate, 'HH:MI:SS') from dual;

  spool off

  exit;

ご訪問頂き有難う御座います。 当サイトを効率良く使うためにまずは FrontPage を見て下さい。 検索方法、一覧表示などの各情報を纏めています。
当サイトの説明 → Frontpage