サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
www.sql-dbtips.com
ORA-28000: アカウントがロックされています。 データベースへ接続する時に、 ORA-28000: アカウントがロックされています。 というエラーが表示された場合、その Oracle ユーザがアカウントロックされて 接続出来ない状態を示している。 アカウントロックの原因 ORA-28000 の原因は、管理者にアカウントロックされたためか、パスワードを 連続失敗してしまって、プロファイルパラメータ FAILED_LOGIN_ATTEMPTS で 許容されている閾値を超えたことが考えられる。 では、あえてアカウントロックをしてみて動作を確認してみる。 アカウントロックの解除 dba_users テーブルでステータスを確認する SQL> select username, account_status, profile from dba_users where username = 'TE
datapump とは datapump は、oracle10g より導入されたユーティリティであり、データベースに 格納されているデータやオブジェクトのメタデータのインポートやエクスポートが可能。 従来の export/import ユーティリティと比較すると、処理性能が向上している。 「データポンプ」や「データパンプ」と呼び方はまちまちだが、 Oracle のマニュアルで、カタカナ表記の場合は「データポンプ」となっているので、 正確にはデータポンプなのだろう。 Oracle エンジニア同士の会話では、 「データパンプ」の方が多いけれども。 Oracle9i まで主力であった export/import ユーティリティは、 11g 以降でも利用することは可能だが、非推奨となっている。 将来的に廃止される運命にあるため、これから使うなら datapump を利用した方がよい。 バージョンア
高度セキュリティ設定を維持 を指定すると、パスワード有効期限や 失敗許容回数など、プロファイルが厳格になりセキュリティが強化される。 よって運用ルールに合わせて設定値の見直しを行ったりする。 DBCAの高度セキュリティ設定維持 詳細内容はOracle11gのDBCAで高度セキュリティ設定を維持を選択すると?で前に書いたが、 11gR2からは有無を言わさず必須となった模様。 プロファイル系のセキュリティ設定のみとうっかりスルーしていたが、 監査ログが有効になるのを忘れてはいけなかった(恥)。 監査ログの初期化パラメータ audit_trail を確認すると、 VALUE が DB 。 DB監査が設定されていることが分かる。 ちなみに OS 監査なら VALUE が OS 、未設定なら NONE となる。 SQL> show parameter audit_trail NAME TYPE VA
OS 認証とパスワードファイル認証 システム権限の SYSDBA や SYSOPER でデータベースに接続する場合、 OS 認証とパスワードファイル認証の2つの方式がある。 (どちらも利用可能な場合は、OS 認証が優先される) パスワードファイル認証の作成手順 orapwdでパスワードファイルを作成 orapwd ユーティリティで作成する( $ORACLE_HOME/dbs で実行) ※ 既にファイルが作成済みなら、 SYSDBA 権限の付与 から実施。 % orapwd file=orapwORCL password=oracle entries=10 ※ コマンド orapwd file=orapw password=<パスワード> entries=<ユーザ数> ファイルが作成されたことを確認 % ls -l orapwORCL -rw-r----- 1 oracle oinstall
Oracleバージョン番号・表記の意味を抑えよう Oracle データベースには、一定期間毎にそのリリースに対して作成された 不具合修正パッチが配布されており、PSR・PSU・CPU・個別パッチ がある。 個別パッチ以外は全て累積型であるため、最新リリースを適用することで それまでの全ての修正を行うことができる。 Oracle12c, 18c でのバージョン表記 【2019/2/6 追記】 Oracle12c では、11g以前と同様に、以下のようになっている。 12c R1:12.1.0.2.0 12c R2:12.2.0.1.0 Oracle 18c からは、年次リリースとなり、クォータ単位のサポートサイクルに 変わるため、バージョン表記の意味合いが変わってくる。詳細はあらためて 解説記事を作る予定だが、以下のようになる。19c 以降もこの感じになりそうだ。 18c:18.4.1 リリー
表領域とデータファイルの関係性 SYSTEM などの Oracle 標準表領域は、データファイルとの関係が 1:1 だが、 アドオン表領域については 1:n であることも多い。ここでは既存表領域への データファイル追加の手順を紹介する。 alter tablespace add datafile で追加する ここではHOGE表領域は2つのデータファイル hoge01.dbf、hoge02.dbf で構成されて いるが、ここに hoge03.dbf を追加してみる。 (1) 表領域とデータファイルの事前確認 SQL> select tablespace_name, file_name, status, bytes/1024/1024 mbytes, increment_by, autoextensible, online_status from dba_data_files where ta
リスナーログの肥大化に注意する listener.log には、リスナー経由の接続情報が出力されていて、 エラー発生時などの調査で参照されるファイル。アラートログなどと同様に 監視対象として設定しておき、通常時はあまり参照されないことも多いはず。 リスナーログをローテーションして切替えたり、不要な過去ログを 退避するような運用が定めていればよいが、何もせず放置していると 膨大なサイズになってしまう。 そこでまず押さえておくべきは、リスナーログファイルの最大サイズだが、 プラットフォームやバージョン、ADR の設定によって異なる。 ・Windows 10g:2GB、11g以降:2GB (ADR 有効なら 4GB) ・Unix/Linux 10g:2GB、11g以降:4GB (ADR 有効なら 無制限) 環境によっては、あっという間にギガに達することもあるので、障害時の取得や 参照に時間がかか
Oracle DB へのインポート インポートとは、簡単に言うと「データベースに外部ファイルからデータを登録すること」。 Oracle DB へインポートを行う際、 datapump ユーティリティを使用するのが一般的。 実行する際は、エクスポート時に出力した dmp (ダンプファイル)がインプットとなる。 対象は業務データそのものだけではなく、メタデータ(データディクショナリで管理される定義情報)も扱える。 旧 imp コマンドに比べはるかに高速になり、対象データ単位やインポート時の変更など、 オプション・パラメータを使い分けることで柔軟な対応が可能となっている。 例えば、impdp でデータのみを対象とする(content=data_only)、事前に既存データを削除する(table_exists_action=truncate)などが良く使われるオプション。 また、スキーマの変更(r
セッションを切断 意図的にセッションを切断したい場合 alter system kill session コマンド で Oracle への接続を強制的に終了させることができる。 残留セッション 例えば、あるセッションで SQL 実行中にフリーズしたが、セッションは 生き残っている場合や、データベースをシャットダウンしたいが接続中の ユーザが残っている場合などが想定される。 後者の場合、 shutdown immediate なら、トランザクションが終了するのを待たずに ロールバックしてセッションを切断するからよいが、normal や transactional では 切断されるまで待ちが発生してしまう。このような時に有効。 hoge ユーザのセッションを強制終了させる例 hoge ユーザでログイン $ sqlplus hoge/hoge@ORCL 管理ユーザでログイン(別窓) $ sqlp
OracleのDDLコマンドを自動生成できる Oracle データベースでは、既存オブジェクト再作成用の SQL (DDL) を 作成するファンクションが提供されている。 実はコレ、用途によっては利用価値が高いので、目から鱗状態の人も少なくないはず。 作成するには、DBMS_METADATA.GET_DDL ファンクションを使用する。 既存オブジェクトの Create文が欲しいとき テーブルやビューなどのオブジェクトから定義を出力する DBMS_METADATA.GET_DDL。 既存オブジェクト再作成 SQL を出力できるのは、とっても便利だ。 出力フォーマットは CLOB のため、set pages と set long の設定が必要。 SQL コマンド select dbms_metadata.get_ddl('(1)','(2)','(3)') from dual; (1) オブジ
Oracleのメモリを確認 これまで Oracle インスタンスのメモリ関連の初期化パラメータには、 (1) を使用していたが、Oracle11g より (2) のパラメータが追加された。 (1):sga_target、sga_max_size、pga_aggregate_target (2):memory_target、memory_max_target 自動調整機能が実装された 以前は各プールサイズまで細かく設定していたものが、徐々に管理機能され ついに SGA と PGA の管理まで自動調整可能となったというわけ。 Oracle11g 以降では従来通り (1) で SGA と PGA の垣根を管理しても良いし、 (2) で全体のチューニングを任せても良し。両方がサポートされている。 【例】Oracle 用メモリに2GB割り当て memory_target = 2000MB memor
アーカイブモードを変更するには 変更は MOUNT 状態で行う。実際にモード変更した手順を紹介する。 1. アーカイブログモード → ノーアーカイブログモード (1) アーカイブログモード確認 SQL> select log_mode from v$database; LOG_MODE ---------- ARCHIVELOG (2) データベース停止 SQL> shutdown immediate データベースがクローズされました。 データベースがディスマウントされました。 ORACLEインスタンスがシャットダウンされました。 (3) マウント起動 SQL> startup mount ORACLEインスタンスが起動しました。 データベースがマウントされました。 (4) モード切替 SQL> alter database noarchivelog; データベースが変更されました。 (5
まずは SQL トレースを取得するための準備 SQL トレースの取得、TKPROF ユーティリティの変換方法を紹介する。 (1) 初期化パラメータの確認 トレース取得前に以下の関連パラメータの設定を確認する。 user_dump_dest、max_dump_file_size、timed_statistics user_dump_dest SQL> show parameter user_dump_dest → トレースファイルの出力先ディレクトリ max_dump_file_size SQL> show parameter max_dump_file_size → トレースファイルの最大サイズ ※ セッション単位で有効とする場合 alter session set max_dump_file_size = サイズ[ K | M ] | unlimited ; timed_statisti
Oracle Real Application Clusters RAC とは、各サーバでインスタンスが稼働していて、 可用性とスケーラビリティの向上を目的とした環境である。(2台以上の構成) HA 構成が Active/Standby であるのに対し、RAC 構成は Active/Active となる。 決まりごと クラスタウェア RAC では、 CRS (Cluster Ready Services) が必須。 自動ストレージ管理 SE (Standard Edition) では、 ASM (Automatic Storage Management) も必須。 ※ 紛らわしいが ASM もインスタンスのひとつ。 ノードアプリケーション NODEAPPS はノードアプリケーションを指し、お馴染みの Listener 以外に VIP、ONS、GDS らをまとめた総称。 起動順序:CRS →
Oracle DB へのエクスポート エクスポートとは、簡単に言うと「データベースから外部ファイルからデータを出力すること」。Oracle DB からエクスポートポートを行う際、 datapump ユーティリティを使用するのが一般的。expdp コマンドで dmp (ダンプファイル)が出力される。 expdp の出力先は、directory で指定したディレクトリオブジェクトに、dumpfile パラメータで指定したファイル名で出力される。 対象は業務データそのものだけではなく、メタデータ(データディクショナリで管理される定義情報)も扱える。 旧 exp コマンドに比べはるかに高速になり、対象データ単位やエクスポート時の変更など、 オプション・パラメータを使い分けることで柔軟な対応が可能となっている。 バージョンアップの度に新機能が追加されており、現在主力の Oracle 12c はもちろ
sqlplus set line sqlplus のシステム変数 linesize で、表示される結果行のサイズ(横幅)を変更できる。 頻繁に利用されている「今さら聞けない」系の基本コマンド。 select する項目のカラム数が多い場合や、カラム長が巨大な場合など、 結果が2行以上に折り返しになってしまうので、データ件数が少なくても SQL*Plus ではかなり見づらくなってしまう。 Object Browser や CSE などのツールには及ばないが、linesize をはじめ SET コマンドを駆使することで出力フォーマッドの見栄えはかなり良くなる。 ※ コマンドプロンプトや Tera Term などの表示幅も適宜修正のこと。 構文 SET LIN[ESIZE] { 80 | n } ※ [] 内は、省略可能。 デフォルトの場合 SQL> show linesize linesize
SQLの副問合せについて 副問合せの方法をインラインビューやサブクエリーと呼ぶ。 会話の中に当たり前のように飛び出してくる名称だが、 実はその定義の違いを正確に理解しておらず、曖昧だったりする。 (ネストや入れ子でも通じるしね・・) 基本的なことだが、今一度、ここで違いを整理したいと思う。
alter pluggable database コマンドを実行する マルチテナント環境では、PDB(プラガブルデータベース)が複数存在する場合があるため、 環境にあわせて起動停止コマンドオプションを使い分ける必要がある […]
このページを最初にブックマークしてみませんか?
『Oracle使いのネタ帳』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く