Oracle DBAコマンド集 - gend007/Oracle-DB GitHub Wiki
ここでは、DBAでよく使用するコマンド一覧を記載する
SELECT * FROM v$parameter;
SELECT * FROM v$parameter2;
SELECT LOG_MODE FROM V$DATABASE;
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME LIKE 'log_archive%';
※データベースがmount状態で実行する
ALTER DATABASE ARCHIVELOG;
alter database open;
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = <サイズ>;
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '<パス>';
CREATE RESTORE POINT before_upgrade;
CREATE RESTORE POINT before_upgrade GUARANTEE FLASHBACK DATABASE;
SELECT RECID, STAMP, THREAD#, SEQUENCE#, FIRST_CHANGE#,
FIRST_TIME, NEXT_CHANGE#
FROM V$ARCHIVED_LOG
WHERE RESETLOGS_CHANGE# =
( SELECT RESETLOGS_CHANGE#
FROM V$DATABASE_INCARNATION
WHERE STATUS = 'CURRENT');
SQL > COLUMN NAME FORMAT A8
SQL > SELECT NAME, CON_ID, DBID, CON_UID, GUID FROM V$CONTAINERS ORDER BY CON_ID;
SQL > COLUMN PDB_NAME FORMAT A15
SQL > SELECT PDB_ID, PDB_NAME, STATUS FROM DBA_PDBS ORDER BY PDB_ID;
col NAME format a15
SQL > select CON_ID,NAME,open_mode,restricted from v$pdbs;
ALTER SESSION SET CONTAINER = <PDB名>;
col STATUS format a7
col MEMBER format a35
SELECT GROUP#, STATUS, MEMBER FROM V$LOGFILE;
col STATUS format a10
SELECT GROUP#, MEMBERS, STATUS, ARCHIVED FROM V$LOG;
col INSTANCE_NAME format a7
col STATUS format a7
select INSTANCE_NAME,STATUS,STARTUP_TIME from V$instance;
set lines 120
set pages 100
set term off
tti off
clear col
col TABLESPACE_NAME format a15
col "TOTALSIZE(MB)" format a20
col "USED(MB)" format a20
col "FREE(MB)" format a20
col "USED(%)" format 990.99
select
d.tablespace_name,
to_char(nvl(total_bytes/(1024*1024),0),'999,999') as "TOTALSIZE(MB)",
to_char(nvl((total_bytes - free_total_bytes)/(1024*1024),0),'999,999') as "USED(MB)",
to_char(nvl(free_total_bytes/(1024*1024),0),'999,999') as "FREE(MB)",
round(nvl((total_bytes - free_total_bytes)/total_bytes * 100,100),2) as "USED(%)"
from
(select tablespace_name,sum(bytes) total_bytes from dba_data_files group by tablespace_name) d,
(select tablespace_name,sum(bytes) free_total_bytes from dba_free_space group by tablespace_name) f
where d.tablespace_name = f.tablespace_name;
TABLESPACE_NAME TOTALSIZE(MB) USED(MB) FREE(MB) USED(%) --------------- -------------------- -------------------- -------------------- ------- SYSAUX 770 731 40 94.87 UNDOTBS1 800 57 743 7.16 USERS 5 3 3 50.00 SYSTEM 890 890 0 99.96
set lines 120
set pages 100
set term off
tti off
clear col
col TABLESPACE_NAME format a15
col "TOTALSIZE(MB)" format a20
col "USED(MB)" format a20
col "FREE(MB)" format a20
col "USED(%)" format 990.99
SELECT
d.tablespace_name,
to_char(nvl(total_bytes/(1024*1024),0),'999,999') as "TOTALSIZE(MB)",
to_char(nvl((total_bytes - extnt_total_bytes)/(1024*1024),0),'999,999') as "USED(MB)",
to_char(nvl(extnt_total_bytes/(1024*1024),0),'999,999') as "FREE(MB)",
round(nvl((total_bytes - extnt_total_bytes)/total_bytes * 100,100),2) as "USED(%)"
FROM
(SELECT tablespace_name, SUM(bytes) total_bytes FROM dba_temp_files GROUP BY tablespace_name) d,
(SELECT tablespace_name, SUM(bytes_used) extnt_total_bytes FROM v$temp_extent_pool GROUP BY tablespace_name) f
WHERE d.tablespace_name = f.tablespace_name;
TABLESPACE_NAME TOTALSIZE(MB) USED(MB) FREE(MB) USED(%) --------------- -------------------- -------------------- -------------------- ------- TEMP 62 60 2 96.77
set lines 120
set pages 100
set term off
tti off
clear col
col TABLESPACE_NAME format a15
col "TOTALSIZE(MB)" format a20
col "USED(MB)" format a20
col "FREE(MB)" format a20
col "USED(%)" format 990.99
col "EXPIRED(MB)" format a20
SELECT
d.tablespace_name,
to_char(nvl(total_bytes/(1024*1024),0),'999,999') as "TOTALSIZE(MB)",
to_char(nvl(act_unexp_total/(1024*1024),0),'999,999') as "USED(MB)",
to_char(nvl(exp_total/(1024*1024),0),'999,999') as "EXPIRED(MB)",
to_char(nvl(free_total/(1024*1024),0),'999,999') as "FREE(MB)",
round(nvl(act_unexp_total / (act_unexp_total+exp_total+free_total)*100,100),2) as "USED(%)"
FROM
(select tablespace_name, sum(bytes) act_unexp_total from dba_undo_extents where status in ('ACTIVE', 'UNEXPIRED') group by tablespace_name) a,
(select tablespace_name, sum(bytes) exp_total from dba_undo_extents where status = 'EXPIRED' group by tablespace_name) b,
(select tablespace_name, sum(bytes) free_total from dba_free_space group by tablespace_name) c,
(select tablespace_name from dba_tablespaces where CONTENTS = 'UNDO') d,
(select tablespace_name, sum(bytes) total_bytes from dba_data_files group by tablespace_name) e
WHERE a.tablespace_name = b.tablespace_name and c.tablespace_name = d.tablespace_name and d.tablespace_name = e.tablespace_name;
TABLESPACE_NAME TOTALSIZE(MB) USED(MB) EXPIRED(MB) FREE(MB) USED(%) --------------- -------------------- -------------------- -------------------- -------------------- ------- UNDOTBS1 200 12 170 17 6.16
col NAME format a15
col OPEN_MODE format a10
select CON_ID,NAME,OPEN_MODE,RESTRICTED from V$pdbs;
CON_ID NAME OPEN_MODE RESTRICTE ---------- --------------- ---------- --------- 2 PDB$SEED READ ONLY NO 3 GENDPDB MOUNTED 4 GENDAPP MOUNTED 5 GENDAPPPDB MOUNTED
col log_mode format a10
col flashback_on format a15
select log_mode,flashback_on from v$database;
alter PLUGGABLE DATABASE ALL open read write;
alter PLUGGABLE DATABASE ALL close immediate;
alter system set control_files='/DATA01/orcl/control01.ctl', '/DATA01/orcl/control02.ctl' scope=spfile;
※ルートコンテナ上で実施。PDB上で実行するとエラー
create user c##testuser1 identified by testuser1;
※PDB上のみ実施。ルートコンテナで実行するとエラー
create user testuser2 identified by testuser2;
※ルートコンテナ上で実施。PDB上で実行するとエラー
create role c##testrole1;
※PDB上のみ実施。ルートコンテナで実行するとエラー
create role testrole2;
※containerのデフォルトはcurrent
grant testrole2 to c##testuser1;
※すべてのコンテナにロールを付与
grant testrole2 to c##testuser1 container=all;
grant c##testrole1 to c##testuser1 container=all;
set lines 120
set pages 100
col name format a20
col value format a35
select CON_ID,name,value,ISPDB_MODIFIABLE from v$parameter;
set lines 120
set pages 100
col name format a20
col value format a35
select CON_ID,name,value,ISPDB_MODIFIABLE from v$system_parameter;
※CDB/PDBで実行可、ISPDB_MODIFIABLがTRUEのパラメータは継承されない
※CONTAINER句のデフォルトは”CURRENT”
alter system set <パラメータ> CONTAINER = CURRENT;
※CDBのみ実行可、ISPDB_MODIFIABLがTRUEのパラメータは継承される
※CONTAINER句のデフォルトは”CURRENT”
alter system set <パラメータ> CONTAINER = ALL;