「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;
権限
-- 確認
-- マルチテナント環境
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, PDB名1, PDB名2)
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;
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