3
5

More than 3 years have passed since last update.

[Oracle] DBA業務で使うコマンド集

Last updated at Posted at 2020-07-17

「OSコマンド」「ORACLEコマンド」「SQLコマンド」の備忘録

実行環境

  • OS: Oracle Linux

OS コマンド

ホストネーム確認

$ hostname
$ uname -n # node host name 

OSバージョン確認

cat /etc/os-release

OSのカーネル情報確認

$ uname -srv

#  -s, --kernel-name        print the kernel name
#  -r, --kernel-release     print the kernel release
#  -v, --kernel-version     print the kernel version

ユーザ・グループ確認

$ id
uid=54321 (oracle) ... 所属グループ=54321 (oinstall), ...

環境変数確認

$ env | grep ORA
ORACLE_SID=orcl
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/oracle/product/バージョン/dbhome_1

SID一覧確認

# $ORACLE_SID:$ORACLE_HOME:[Y|N] のフォーマット形式で記載されている。
$ cat /etc/oratab 

データベース動作確認

# ora_で始まる全てのプロセス(e)をフルフォーマット(f)で表示する
$ ps -ef | grep ora_
# => grep以外のプロセスが複数出力されれば動作している

# 存在している非CDBとCDBのインスタンス名を確認
$ ps -ef | grep smon
#=> 「ora_smon_インスタンス名」として出力される
# PDBまで確認したい場合は、CDBに接続してから「show pdbs」
# CDBの確認は「show con_name」
# OSからの簡易的なPDBの存在確認方法は「lsnrctl status」

ログのリアルタイム監視

$ tail -f ログファイル.log

ORACLE コマンド

環境変数設定

$ . oraenv
ORACLE_SID = [orcl] ? orcl

データベース接続

$ sqlplus / as sysdba
$ sqlplus [username][/password][@netservicename]

# Pluggable DatabaseにSYSDBAで接続
$ sqlplus sys/<Password>@<PDB名> as sysdba

ネットサービス確認

$ tnsping SID

$ cat $ORACLE_HOME/network/admin/tnsnames.ora

SQL Developer 起動

$ cd $ORACLE_HOME/sqldeveloper
$ sh sqldeveloper.sh

接続はSQL Developerを使用したデータベース接続の作成

Oracle Net Manager起動

$ netmgr

Oracle Net Configuration Assistant

$ netca

SQL*Loader

$ sqlldr ユーザ名/パスワード control=ファイル名.ctl

Listener

$ lsnrctl status
$ lsnrctl start
$ lsnrctl stop

RMAN

-- RMAN接続
$ rman target /

-- 設定確認
RMAN> show all;

-- REDOログ・ファイルのアーカイブを有効化
RMAN> shutdown immediate;
RMAN> startup mount;
RMAN> alter database archivelog;
RMAN> alter database open;
-- SQL> archive log list -- データベース・ログ・モードの確認

-- データベース全体のバックアップを実行
RmAN> backup database plus archivelog; -- アーカイブ・ログファイルをバックアップ

-- フラッシュバック
RMAN> alter database flashback on; -- 有効化
SQL> alter table テーブル名 enable row movement; -- 行の移動を有効化
SQL> flashback table テーブル名 to timestamp to timestamp('2020-12-31 00:00:00', 'YYYY-MM-DD HH24:MI:SS'); -- フラッシュバック実行


-- データベース障害のリスト表示
RMAN> list failure;

-- 障害に対するアドバイス取得
RMAN> advise failure;

-- アドバイス実行
RMAN> repair failure;
-- => この修復を実行しますか(YESまたはNOを入力してください。)

SQL コマンド

便利・小技

-- OSコマンド実行
SQL> !OSコマンド

-- 直前のSQL文を実行
SQL> /

-- 直前のSQL文を確認
SQL> ;

-- 直前に実行したSQLをファイルに保存
SQL> save ファイル名.sql

-- 出力を見やすくする
SQL> set pages 1000;
SQL> set line 1000;
SQL> col 列名 format a50;

-- 実行計画を表示する
SQL> set autotrace on explain

EasyConnect


-- Pluggable DB
SQL> CONN sys/<pass>@<host or IP>:<port>/<PDB Name> as sysdba
SQL> CONN <user>/<pass>@<PDB Name>

各種システム情報取得

-- データベースバージョン確認
SQL> select * from v$version;

-- インスタンス情報
SQL> select * from v$instance;

-- セッション情報
SQL> select * from v$session;
SQL> SELECT username, con_id FROM sys.v_$session;

-- 診断情報のログファイル格納場所
SQL> select name, value from v$diag_info;

-- サービス情報
SQL> select name from v$services;

-- PDB情報(show pdbsと同じ)
SQL> select con_id, name, open_mode, restricted from v$pdbs;

ポート

-- ポート開放プロシージャ
SQL> exec dbms_xdb_config.sethttpsport(5500);
-- 解放されているポートの確認ファンクション
SQL> select dbms_dba_config.gethttpsport() from dual;

DBMS_XDB_CONFIG

権限

-- 確認
-- マルチテナント環境
SQL> select grantee, granted_role, common, con_id from cdb_role_privs
SQL> select grantee, privilege, common, con_id from cdb_sys_privs;

-- コンテナデータ属性を確認
SQL> SELECT USERNAME, DEFAULT_ATTR, OWNER, OBJECT_NAME,
    ALL_CONTAINERS, CONTAINER_NAME, CON_ID
    FROM CDB_CONTAINER_DATA

-- 共通ユーザに他のコンテナへの情報アクセスを許可
-- ルートで実行
SQL> ALTER USER <共通ユーザ>
    SET CONTAINER_DATA = (CDB$ROOT, PDB1, PDB2)
    FOR V_$SESSION
    CONTAINER=CURRENT; 

起動・停止

-- 起動
SQL> startup

SQL> startup mount
SQL> alter database open

-- 停止
SQL> shutdown immediate

データベース削除

-- sysユーザで実行
SQL> shutdown immediate;
SQL> startup mount restrict;
SQL> drop database;

初期化パラメーター

-- 確認
SQL> show parameter [パラメータ名(一部でも可)]

-- 非CDB
SQL> select name, type, value from v$parameter where name like '%パラメータ名%';
-- CDB
select con_id, value from v$parameter where name like '%パラメータ名%';
-- CDBからPDB
select con_id, value from v$system_parameter where name like '%パラメータ名%';

-- 変更
SQL> alter system set パラメータ名= scope=スコープ
-- 例
SQL > alter system set open_cursors=100 scope=both;
SQL > alter system set open_cursors=100 scope=spfile;

-- SPFILEからPFILEを作成
SQL> create pfile='/home/oracle/p.txt' from spfile;
-- PFILEを指定してDBを起動
SQL> startup pfile='/home/oracle/p.txt';
-- PFILEからSPFILEを作成
SQL> create spfile from pfile='/home/oracle/p.txt';
-- 現行インスタンスからPFILEを作成
SQL> create pfile='/home/oracle/p.txt' from memory;

制御ファイル

-- 確認
SQL> select name from v$controlfile; -- フルパスが出力

SQL> show parameter control_files  -- フルパスが出力

REDOログファイル

-- 確認
SQL> col member format a50  -- 見やすいレイアウトで出力
SQL> select group#, member from v$logfile order by 1;

-- メンバ追加
SQL> alter database add logfile member '/u01/app/oracle/ORCL/onlinelog/ファイル名.log' to group グループ番号

データベース・ログ・モード

SQL> archive log list

表領域

-- データディクショナリから確認
SQL> select tablespace_name from dba_tablespaces; -- 表領域名のみ
SQL> select tablespace_name, file_name, autoextensible from dba_data_files; -- データファイルも含めて

-- 作成
SQL> create tablespace 表領域名 datafile '/u01/app/oracle/oradata/ORCL/datafile/ファイル名.dbf' size 100M;

-- 編集
SQL> alter database datafile '/u01/app/oracle/oradata/ORCL/datafile/ファイル名.dbf' autoextend on; -- 自動拡張可能に設定

バックアップ


-- 制御ファイルをトレース・ファイルにバックアップ
SQL> alter database backup controlfile to trace;

PDB


-- PDB Status確認
SQL> select pdb_name, status from cdb_pdbs;

-- PDB削除(データ・ファイルは残したまま)
SQL> drop pluggable database <PDB> keep datafiles;
-- PDB削除(データ・ファイルは残さない)
SQL> drop pluggable database <PDB> including datafiles;

-- 互換性
-- DBMS_PDB.CHECK_PLUG_COMPATIBLITYファンクションでfalseになった場合のメッセージ確認
SQL> select message, action from pdb_plug_in_violations where name=<PDB>;

-- Open
-- すべて
SQL> alter pluggable database all [except <PDB>] open;


-- PDB名変更
-- show pdbsで逐次ステータスを確認可能
-- 対象のPDBに接続
SQL> conn sys/<pass>@<PDB> as sysdba;
-- closeしてrestrictedモードでopen
SQL> alter pluggable database close immediate;
SQL> alter pluggable database open restricted;
-- RENAME
SQL> alter pluggable database rename global_name to <PDB>;
-- closeして通常モードでopen
SQL> alter pluggable database close immediate;
SQL> alter pluggable database open;

PDBの削除


Location

アラート・ログファイル

SQL> select name, value from v$diag_info where name like '%Trace%';
-- alert_orcl.log

制御ファイル

SQL> show parameter control_files;

Statspackドキュメント

$ORACLE_HOME/rdbms/admin/spdoc.txt

その他

Enterprise Manager Database Express アクセス

https://localhost:5500/em
3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5