{RDS}Oracle DB インスタンスの管理

-- 1. RDSインスタンス作成


aws rds describe-db-engine-versions \
--engine oracle-se2 \
| jq -c '.DBEngineVersions[] | [ .Engine, .EngineVersion ]'


aws rds create-db-instance \
--db-instance-identifier oracle01 \
--allocated-storage 20 \
--db-instance-class db.t3.small \
--engine oracle-se2 \
--master-username oracle \
--master-user-password 'password' \
--no-multi-az \
--engine-version 19.0.0.0.ru-2021-04.rur-2021-04.r1 \
--storage-type gp2 \
--no-publicly-accessible \
--no-enable-performance-insights \
--no-auto-minor-version-upgrade \
--license-model license-included


-- 2. Oracle DB インスタンスの一般的なシステムタスクの実行

-- セッションの終了

SELECT SID, SERIAL#, STATUS FROM V$SESSION WHERE USERNAME = 'TEST';

begin
rdsadmin.rdsadmin_util.kill(
sid => 63,
serial => 63684);
end;
/

-- 共有プールのフラッシュ
select count(*) from v$sql;

exec rdsadmin.rdsadmin_util.flush_shared_pool;

-- バッファキャッシュのフラッシュ

select STATUS,count(*) from V$BH
group by STATUS
order by STATUS
;


exec rdsadmin.rdsadmin_util.flush_buffer_cache;


-- 3. Oracle DB インスタンスの一般的なデータベースタスクの実行

-- デフォルトテーブルスペースの設定

select file_name,tablespace_name,autoextensible,maxbytes from dba_data_files;
select tablespace_name,bigfile,contents from dba_tablespaces;


create tablespace tbs1 datafile size 10M autoextend on maxsize 10G;

→デフォルトでbigfile表領域となる

select * from DATABASE_PROPERTIES where PROPERTY_NAME = 'DEFAULT_TBS_TYPE';

EXEC rdsadmin.rdsadmin_util.alter_default_tablespace(tablespace_name => 'TBS1');


select * from DATABASE_PROPERTIES where PROPERTY_NAME = 'DEFAULT_PERMANENT_TABLESPACE';


-- デフォルトの一時テーブルスペースの設定

select file_name,tablespace_name,autoextensible,maxbytes from dba_temp_files;
select tablespace_name,bigfile,contents from dba_tablespaces;

create temporary tablespace tbs2 tempfile size 10M autoextend on maxsize 10G;


EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace(tablespace_name => 'TBS2');

select * from DATABASE_PROPERTIES where PROPERTY_NAME = 'DEFAULT_TEMP_TABLESPACE';

-- ごみ箱を空にする

alter session set recyclebin ='ON';

show recyclebin;

exec rdsadmin.rdsadmin_util.purge_dba_recyclebin;

 

-- 4. Oracle DB インスタンスの一般的なログ関連タスクの実行

-- オンラインログファイルを切り替える

select * from v$log;
select * from v$logfile;

exec rdsadmin.rdsadmin_util.switch_logfile;

→1回実行するとなぜかロググループ2個進む


-- オンライン REDO ログの追加
exec rdsadmin.rdsadmin_util.add_logfile(p_size => '128M');

-- オンライン REDO ログの削除
exec rdsadmin.rdsadmin_util.drop_logfile(grp => 6);

-- 5. Oracle DB インスタンスのその他のタスクの実行

-- 主要データストレージ領域でのディレクトリの作成と削除


select * from dba_directories;


exec rdsadmin.rdsadmin_util.create_directory(p_directory_name => 'ORA_DIR');

exec rdsadmin.rdsadmin_util.drop_directory(p_directory_name => 'ORA_DIR');

-- DB インスタンスディレクトリ内のファイルのリスト化
SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'ORA_DIR'));

-- DB インスタンスディレクトリ内のファイルの読み取り

declare
fh sys.utl_file.file_type;
begin
fh := utl_file.fopen(location=>'ORA_DIR', filename=>'test.txt', open_mode=>'w');
utl_file.put(file=>fh, buffer=>'Hello World!');
utl_file.fclose(file=>fh);
end;
/

SELECT * FROM TABLE
(rdsadmin.rds_file_util.read_text_file(
p_directory => 'ORA_DIR',
p_filename => 'test.txt'));

 

-- 6. クリーンアップ

-- RDSインスタンス削除

aws rds delete-db-instance \
--db-instance-identifier oracle01 \
--skip-final-snapshot