Oracle Database 便利SQL

1.インスタンス作成

pfile起動でnomount状態へDB起動した上で、CREATE DATABASE実行

インスタンス作成sample
startup nomount pfile='/tmp/sul.ora'

CREATE DATABASE SUL
   USER SYS IDENTIFIED BY premera
   USER SYSTEM IDENTIFIED BY premera
   LOGFILE GROUP 1 ('+DG01/SUL/ONLINELOG/redo_grp1','+DG02/SUL/ONLINELOG/redo_grp1') SIZE 200M BLOCKSIZE 512,
           GROUP 2 ('+DG01/SUL/ONLINELOG/redo_grp2','+DG02/SUL/ONLINELOG/redo_grp2') SIZE 200M BLOCKSIZE 512,
           GROUP 3 ('+DG01/SUL/ONLINELOG/redo_grp3','+DG02/SUL/ONLINELOG/redo_grp3') SIZE 200M BLOCKSIZE 512
   MAXLOGHISTORY 1
   MAXLOGFILES 16
   MAXLOGMEMBERS 3
   MAXDATAFILES 1024
   CHARACTER SET AL32UTF8
   NATIONAL CHARACTER SET AL16UTF16
   EXTENT MANAGEMENT LOCAL
   ARCHIVELOG
   DATAFILE '+DG03/SUL/DATAFILE/SYSTEM' SIZE 700M
   SYSAUX DATAFILE '+DG03/SUL/DATAFILE/SYSAUX' SIZE 800M
   DEFAULT TABLESPACE sul01 DATAFILE '+DG03/SUL/DATAFILE/SUL01' SIZE 3036M
   DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE '+DG03/SUL/DATAFILE/TEMPTS01' SIZE 512M
   UNDO TABLESPACE undotbs1 DATAFILE '+DG03/SUL/DATAFILE/UNDOTBS01' SIZE 512M
   USER_DATA TABLESPACE users DATAFILE '+DG03/SUL/DATAFILE/USERS' SIZE 300M;
alter database mount;
alter database open;
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql

conn system/premera
@?/sqlplus/admin/pupbld.sql
conn / as sysdba
create spfile='+DG03/SUL/spfileSUL.ora' from pfile='/tmp/sul.ora';
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;

2.セッションとサーバープロセスの確認

セッションの確認
select sid,serial#,username,program,type from V$session;
セッションとサーバープロセスの関係
select s.sid,s.serial#,s.username,s.program "PROGRAM(Client)",p.pid,p.spid,p.program "PROGRAM(Oracle)" from V$session s, V$process p where s.paddr = p.addr AND p.background IS NULL;
※SQL項目一覧
列名 説明
sid セッション識別子
serial# セッションシリアル番号。各セッションはsidとserial#の組み合わせで識別される
username セッション接続しているユーザー名
type セッションタイプの識別。 「USER」は通常のセッション、「BACKGROUND」がバックグランドプロセスによる接続を表す
spid OS上での該当セッションのプロセスID

3.各Database構成コンポーネント

①制御ファイル

■制御ファイルパス確認

制御ファイルのパス確認
col name format a100;
select name from v$controlfile;

■制御ファイル多重化手順
1.制御ファイルのパス変更

SPFIL初期化パラメータ変更
ALTER SYSTEM SET control_files = '<new path1>','<new path2>' SCOPE = SPFILE;

2.データベースを停止
3.存在している制御ファイルを新しい場所へコピー
4.データベースを起動

②オンラインREDOログファイル

■オンラインREDOログファイルのパス確認

オンラインREDOログファイルのパス確認
col member format a100;
SELECT A.GROUP#,A.BYTES,A.STATUS,B.TYPE,B.MEMBER from v$LOG A right outer join v$logfile B ON A.group# = B.group#;

■オンラインREDOログファイル多重化手順
1.データベースをMOUNT状態で起動
2.REDOロググループ作成

オンラインREDOロググループ作成
alter database add logfile group x ('<newパス>') SIZE xxxM;

3.REDOログメンバー作成

オンラインREDOログファイルメンバー追加
alter database add logfile member '<newパス>' to group x;

4.データベースOPEN

※REDOログバッファからREDOログファイル書き込みタイミング
・トランザクションcommit時
・DBWnがREDOデータの書き込みを要求した時
・3秒ごとのタイムアウトが発生した時
・REDOログバッファが不足した時
・未書き込みのREDOデータがREDOログバッファの3分の1を超えた時

※強制ログスイッチ実行
alter system switch logfile;
→振り逃げ
alter system archive log current;
→アーカイブログ完了ををもって終了。バックアップ前等に推奨。
RMANではバックアップ時に内部的に利用されている。

③アーカイブREDOログファイル

アーカイブログモード状態確認
ARCHIVE LOG LIST;
SELECT NAME,LOG_MODE from V$DATABASE;
アーカイブログモードへの切り替え
ALTER DATABASE ARCHIVELOG;
アーカイブREDOログファイルの確認
col name format a100;
SELECT name,sequence# from V$ARCHIVED_LOG order by 2;

④表領域・データファイルの状態確認

表領域の状態確認
col TABLESPACE_NAME for a15
col EXTENT_MANAGEMENT for a17
col ALLOCATION_TYPE for a15
col SEGMENT_SPACE_MANAGEMENT for a24
col BIGFILE for a7
select TABLESPACE_NAME,EXTENT_MANAGEMENT,ALLOCATION_TYPE,SEGMENT_SPACE_MANAGEMENT,BIGFILE,STATUS from DBA_TABLESPACES;
データファイルの状態確認
col TABLESPACE_NAME  format a10
col FILE_NAME        format a35
col STATUS           format a10
col MBYTES           format 9,999,990
col INCRE            format 9,999,990
col AUTOEXTENSIBLE   format a5
col ONLINE_STATUS    format a6
select tablespace_name,file_name,status,bytes/1024/1024 mbytes,increment_by,autoextensible,online_status from dba_data_files;

99.高度な例

表領域暗号化

https://www.insight-tec.com/mailmagazine/ora3/vol366.html
https://enterprisezine.jp/dbonline/detail/3538?p=2

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.