- Oracle Cloud
- Oracle Database
OCIでGPUインスタンスを構築してみた
OCIで提供されている生成AIサービスとGPUインスタンスを前回の記事「生成AIにGPUが適している理由」で紹介しました。本記事では、GPUインスタンスをデプロイして、インスタンス上でLLM(大規模言語モデル)の動作環境を構築する方法をご紹介します。
|
データベースをアーカイブログモードで運用した場合、ログスイッチのタイミングでARCHプロセスがREDOログファイルのコピーをアーカイブREDOログファイル(アーカイブログ)として保存します。
アーカイブログは一般的に世代管理/N日分を保存といったポリシーを設定し、バックアップ取得時に削除する運用をされているケースが多く見られます。
しかし、「繁忙期で更新処理が大量に行われ想定以上のアーカイブログが出力された」、「バックアップジョブが何かしらの理由により動作していなかった」といった理由でアーカイブログの出力先空き容量が枯渇すると「ORA-00257:アーカイブ・エラーです。解除されるまでAS SYSDBAにのみ接続してください。」などのエラーが発生し一般ユーザでの新規接続ができない/既存の更新処理がハングするといった状態になります。
今回はアーカイブログの出力先領域を増やす緊急手段として、アーカイブログの削除方法を3つ紹介します。
アーカイブログの出力先が枯渇している場合、対象データベースのアラートログにはアーカイブログが作成できないことを示すエラーを出力します。どのディスクに対して出力ができないのかはエラーメッセージから確認可能です。
Unable to create archive log file '+data' Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_arc2_24884.trc: ORA-19816: WARNING: Files may exist in db_recovery_file_dest that are not known to database. ORA-17502: ksfdcre:4 Failed to create file +data ORA-15041: diskgroup "DATA" space exhausted ************************************************************* WARNING: A file of type ARCHIVED LOG may exist in db_recovery_file_dest that is not known to the database. Use the RMAN command CATALOG RECOVERY AREA to re-catalog any such files. If files cannot be cataloged, then manually delete them using OS command. This is most likely the result of a crash during file creation. ************************************************************* ARC2: Error 19504 Creating archive log file to '+data' ARCH: Archival stopped, error occurred. Will continue retrying ORACLE Instance orcl1 - Archival Error ORA-16038: log 2 sequence# 47 cannot be archived ORA-19504: failed to create file "" ORA-00312: online log 2 thread 1: '+DATA/orcl/onlinelog/group_2.507.964538481' ORA-00312: online log 2 thread 1: '+DATA/orcl/onlinelog/group_2.354.964538481'
上述の出力例はRAC環境のもので、「diskgroup "DATA" space exhausted」や「Error 19504 Creating archive log file to '+data'」の出力にあるとおり、ディスクグループ'DATA'にアーカイブログが作成できないことを示します。
DELETE ARCHIVELOG コマンドを使用してアーカイブログを削除します。すべてのアーカイブログを削除する場合は「ALL」、特定日付以前のアーカイブログを削除する場合は「UNTIL TIME」を指定します。
--RMANを起動(ユーザ名、ORACLE_SID、ORACLE_HOMEは環境に合わせて指定) % su - oracle % export ORACLE_SID=orcl % export ORACLE_HOME=/u01/oracle/app/v122/product/12.2.0/dbhome_1 % rman target sys/password --全て削除 RMAN> DELETE ARCHIVELOG ALL; --日数指定で削除(例:3日前以前のアーカイブログ) RMAN> DELETE ARCHIVELOG UNTIL TIME 'sysdate - 3';
なお、削除するアーカイブログの指定方法には「UNTIL SEQUENCE」や「UNTIL SCN」もありますが、事前に listコマンド等で対象となるシーケンス番号やSCNを確認しておく必要があるため、緊急時の対処として利用されるケースは稀です。
RMAN以外の方法、たとえば、UNIX系であればrm、WindowsであればdelなどのOSコマンドでアーカイブログを削除した場合、アーカイブログの情報は(デフォルトでは)制御ファイル上で保持しているためOracle Databaseはファイルが削除されたことを認識できません。
そのため、OS上では空き領域があるように見えてもORA-00257が解消しないことがあります。
RMAN以外でアーカイブログを削除した場合は、RMANで次のコマンドを実行し、実際のファイルと制御ファイルの情報を同期します。
--RMANを起動(ユーザ名、ORACLE_SID、ORACLE_HOMEは環境に合わせて指定) % su - oracle % export ORACLE_SID=orcl % export ORACLE_HOME=/u01/oracle/app/v122/product/12.2.0/dbhome_1 --制御ファイルとの同期 % rman target sys/password RMAN> crosscheck archivelog all; RMAN> delete expired archivelog all;
リカバリカタログを使用していない場合、アーカイブログの情報は制御ファイルで保持されます。制御ファイルでのアーカイブログ情報の保証期間は
control_file_record_keep_time
で設定されておりデフォルトでは7日です。そのため、8日以上前のアーカイブログの情報は上書きされる可能性があります。※時間経過後即上書きされるわけではありません。
制御ファイル上で上書きされたアーカイブログは"RMAN> list archivelog all;"に出力されず、"RMAN> delete archivelog all;"でも削除されません。ディスク上にこのようなアーカイブログが存在する場合、ファイルシステムの場合はOSコマンドで削除して問題ありません。
ASMを利用の環境では後述いずれかの方法でASM上から不要なアーカイブログを削除します。
ASMインスタンスに接続後、ディスクグループ名、ファイル名を確認して削除します。
--DBインスタンスに接続(ユーザ名、ORACLE_SID、ORACLE_HOMEは環境に合わせて指定) % su - oracle % export ORACLE_SID=orcl % export ORACLE_HOME=/u01/oracle/app/v122/product/12.2.0/dbhome_1 % sqlplus / as sysdba --ファイル名確認 SQL> alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS'; SQL> select completion_time,name from v$archived_log where name is not null; COMPLETION_TIME NAME ------------------- ---------------------------------------------------------------------- 2018/03/12 11:35:49 +DATA/orcl/archivelog/2018_03_12/thread_1_seq_85021.514.970572949 2018/03/12 11:35:49 +DATA/orcl/archivelog/2018_03_12/thread_2_seq_576.528.970572949 --ASMインスタンスに接続(ORACLE_SID、ORACLE_HOMEは環境に合わせて指定) % su - grid % export ORACLE_SID=+ASM1 % export ORACLE_HOME=/u01/app/12.2.0/grid % sqlplus / as sysasm --削除コマンド SQL> alter diskgroup DATA drop file '+DATA/orcl/archivelog/2018_03_12/thread_1_seq_85021.514.970572949'; SQL> alter diskgroup DATA drop file '+DATA/orcl/archivelog/2018_03_12/thread_2_seq_576.528.970572949'; --制御ファイルとの同期 % su - oracle % export ORACLE_SID=orcl % export ORACLE_HOME=/u01/oracle/app/v122/product/12.2.0/dbhome_1 % rman target sys/password RMAN> crosscheck archivelog all; RMAN> delete expired archivelog all;
ASM内のファイルを管理するコマンドライン・ユーティリティ、ASMCMDを使用します。アーカイブログは日付ごとにディレクトリが分かれているため日数指定での削除も可能です。
--ASMインスタンスに接続(ORACLE_SID、ORACLE_HOMEは環境に合わせて指定) % su - grid % export ORACLE_SID=+ASM1 % export ORACLE_HOME=/u01/app/12.2.0/grid % asmcmd --アーカイブログ出力先領域に移動(パスはアラートログの出力内容で判断) ASMCMD> cd DG名/DB名/ARCHIVELOG/ ASMCMD> ls --纏めて削除する場合 ASMCMD> rm -fr * --日付毎等で分割して削除する場合 ASMCMD> rm -fr yyyy_mm_dd --特定のファイルを削除する場合 ASMCMD> cd DG名/DB名/ARCHIVELOG/yyyy_mm_dd ASMCMD> rm -fr ファイルパス --制御ファイルとの同期 % su - oracle % export ORACLE_SID=orcl % export ORACLE_HOME=/u01/oracle/app/v122/product/12.2.0/dbhome_1 % rman target sys/password RMAN> crosscheck archivelog all; RMAN> delete expired archivelog all;
アーカイブログ出力先領域の枯渇による接続障害のお問合わせは2017年1月1日~12月31日の間で20件以上いただいております。データベースに接続できない=サービスの提供ができない状況ですので、多くのケースで緊急対応のご要望いただいておりました。アーカイブログに限らずディスクフルに起因してトラブルが発生するケースは少なくないため、日頃からディスク領域の監視をすることが重要です。
なお、本記事の内容でアーカイブログを削除した場合はそのアーカイブを用いたリカバリは行えなくなるため、削除後には必ずデータベースのバックアップをご取得ください。
本記事に関連して、Oracle Databaseの障害発生時の対処法や、Oracle Database 21cへのバージョンアップ時の留意点などをご紹介している記事もございます。適宜あわせてお読みください。
Oracle Databaseのバージョンアップやシステム更改のご相談や技術支援のご要望がございましたら、お気軽にお問い合わせください。
サービス事業部 付加価値創造部
2007年アシスト入社。Oracle Databaseのサポート業務を経て、サポートセンターに蓄積されたナレッジを使用したサービス開発の立ち上げに従事。現在は「アシストの超サポ」を広め、カスタマーエンゲージメントの構築を実現するための活動を行っている。
■本記事の内容について
本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。
■商標に関して
・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
OCIで提供されている生成AIサービスとGPUインスタンスを前回の記事「生成AIにGPUが適している理由」で紹介しました。本記事では、GPUインスタンスをデプロイして、インスタンス上でLLM(大規模言語モデル)の動作環境を構築する方法をご紹介します。
前回の記事でお伝えしたとおり、OCVSを構築するとVMwareの複数の機能が利用可能です。 それらの機能の中で、今回はHCXの概要や具体的な機能、OCVSでHCXを利用するメリットなどをお伝えします!
2024年5月にOracle Cloud環境にて、先行してOracle DB 23aiがリリースされました。 Oracle Base Database ServiceにおけるOracle Database 23aiの検証結果を報告します。 今回は「統合メモリー管理」をテーマにお伝えします。