Oracle19c

【Oracle19c】失敗しないデータベース作成

2020年11月21日


Oracleのデータベース作成をコマンドで実施するにはどうすればいいのか教えて下さい。

こんにちはユキトモです。

こちらの記事でたった3行でデータベースを作成する方法をご紹介しました。

3行目の実施すると「ORACLECDB」というデータベースができますが、ほとんど全自動で作成されるためカスタマイズが制限されます。

この記事では1行目と2行目だけを実施して3行目を実施しないで、「 CREATE DATABASE 」コマンドを使ってデータベース(CDBのインスタンス)を作成する方法を説明します。

 oracleユーザ作成からOracle本体インストールまで
# yum install -y oracle-database-preinstall-19c
# yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
 このコマンドは今回実施しない
# この3行目のコマンドを実施しないで、CREATE DATABASEコマンドで作成します。
# /etc/init.d/oracledb_ORCLCDB-19c configure

インスタンス名は「 orcl 」とします。

そのほかの設定内容の例をこの後説明します。
検証環境用の設定ですので、本格運用する場合はディレクトリを変更して設計して下さい。

環境変数の設定

oracleユーザにスイッチします。

 oracleユーザにスイッチ
su - oracle

.bash_profileに下記の値を追記する

 .bash_profile
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export ORACLE_SID=orcl
export NLS_LANG=Japanese_Japan.AL32UTF8
export PATH=$ORACLE_HOME/bin:$PATH
export PATH=$ORACLE_HOME/perl/bin:$PATH

設定を反映します。

 設定を反映
source ~/.bash_profile

監査ログ用ディレクトリを作成します。

 監査ログ用ディレクトリ
mkdir -p /opt/oracle/admin/orcl/adump

高速リカバリ領域用ディレクトリ作成

 高速リカバリ領域用ディレクトリ
mkdir -p /opt/oracle/oradata/orcl/fast_recovery_area

PDBのテンプレート用のディレクトリ作成

 PDBのテンプレート用ディレクトリ
mkdir -p /opt/oracle/oradata/orcl/pdbseed

自動診断リポジトリ用ディレクトリ作成

 自動診断リポジトリ用ディレクトリ
# 無ければ作成する
mkdir -p /opt/oracle/diag
# あれば確認だけで良い
ls -l /opt/oracle/diag

制御ファイル用のディレクトリ
下記パスに設定

 制御ファイル用ディレクトリ
ls -l /opt/oracle/oradata/orcl/

パラメータファイル(pfile)
init.oraファイルをコピーして「initorcl.ora」を作成し、パラメータを変更しました。

 パラメータファイル
cat /opt/oracle/product/19c/dbhome_1/dbs/initorcl.ora
db_name='orcl'
memory_target=1G
processes = 150
audit_file_dest='/opt/oracle/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/opt/oracle/oradata/orcl/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/opt/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=orcl)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
control_files = (/opt/oracle/oradata/orcl/control1, /opt/oracle/oradata/orcl/control2)
ENABLE_PLUGGABLE_DATABASE=TRUE

 

データベースを作成

では、ここからOracleへログインしてデータベースを作成していきます。

 nomountモード
Oracleへログイン
sqlplus / as sysdba
SQL> --nomountモードで起動
SQL> startup nomount

CREATE DATABASEコマンドを実施します。

 CREATE DATABASE
CREATE DATABASE "orcl"
DATAFILE '/opt/oracle/oradata/orcl/system01.dbf'
SIZE 500M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/opt/oracle/oradata/orcl/sysaux01.dbf' SIZE 50M
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP
TEMPFILE '/opt/oracle/oradata/orcl/temp01.dbf' SIZE 20M
SMALLFILE UNDO TABLESPACE "UNDOTBS1"
DATAFILE '/opt/oracle/oradata/orcl/undotbs01.dbf' SIZE 50M
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/opt/oracle/oradata/orcl/redo01.log') SIZE 10M,
GROUP 2 ('/opt/oracle/oradata/orcl/redo02.log') SIZE 10M,
GROUP 3 ('/opt/oracle/oradata/orcl/redo03.log') SIZE 10M
USER SYS IDENTIFIED BY oracle USER SYSTEM IDENTIFIED BY oracle
ENABLE PLUGGABLE DATABASE
SEED FILE_NAME_CONVERT=
('/opt/oracle/oradata/orcl','/opt/oracle/oradata/orcl/pdbseed');

CDB用のスクリプトを実行する

 CDB用のスクリプト実行
SQL> @?/rdbms/admin/catcdb.sql

パラメータ確認

 パラメータ確認
SQL> set lines 100
SQL> col NAME_COL_PLUS_SHOW_PARAM FORM A30;
SQL> col TYPE form A11;
SQL> col VALUE_COL_PLUS_SHOW_PARAM form A45;
SQL> SHOW PARAMETER ENABLE_PLUGGABLE_DATABASE

CDBのステータスを確認

 ステータス確認
SQL> SELECT NAME,CDB,CON_ID FROM V$DATABASE;

PDBのステータスを確認

 ステータス確認
SQL> SHOW PDBS

 

まとめ

「CREATE DATABASE」コマンドを使ってCDBまでを作成しました。

・pfileで起動していたり、
・ノーアカイブモードであったり
・PDBはまだ作成されていなかったり
するので、また別の記事で設定方法を説明します。


以上です。

-Oracle19c
-, ,