zipコマンドでフォルダも含めて再帰的に圧縮する
概要
本日フォルダも含めてファイル・フォルダを圧縮したので備忘
方法
zip -r (zipファイル) (フォルダ名)
で可能
zip -r log.zip log
のような形で実行すれば良いかと思います。
リスナーログの中身を確認する
備忘
リスナーログの中身を確認したので備忘
リスナーログの場所
テキスト形式のログは
%ORACLE_BASE%\diag\tnslsnr\<ホスト名>\<リスナー名>\trace\リスナー名.log
に出力される
ログの出方
ターミナルで簡易接続
sqlplus sys/manager@localhost:1521/cdb as sysdba
以下の通りログが出力される
09-4月 -2022 21:21:03 * (CONNECT_DATA=(SERVICE_NAME=cdb)(CID=(PROGRAM=sqlplus)(HOST=localhost.localdomain)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=59399)) * establish * cdb * 0 09-4月 -2022 21:21:03 * service_update * cdb * 0
パーティション表の情報を確認する
概要
作成したパーティション表の
パーティションタイプ
パーティション名
パーティションキー
HIGH_VALUE
を確認したので備忘
方法
以下で可能
データディクショナリビューの名前が紛らわしいですね。。。
SQL> select 2 t.table_name,t.partitioning_type,p.partition_name,c.column_name,p.high_value 3 from 4 dba_part_tables t, 5 dba_tab_partitions p, 6 dba_part_key_columns c 7 where 8 t.owner=p.table_owner 9 and 10 p.table_name=t.table_name 11 and 12 t.table_name=c.name 13 and 14 t.table_name='SALES' 15 ; TABLE_NAME PARTITIONING_TYPE PARTITION_NAME COLUMN_NAME HIGH_VALUE -------------------- -------------------- -------------------- -------------------- -------------------------------------------------------------------------------- SALES RANGE SALES_Q1_2006 TIME_ID TO_DATE(' 2022-03-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA N') SALES RANGE SALES_Q2_2006 TIME_ID TO_DATE(' 2022-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA N') SALES RANGE SALES_Q3_2006 TIME_ID TO_DATE(' 2022-05-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA N') SALES RANGE SALES_Q4_2006 TIME_ID TO_DATE(' 2022-06-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA N')
参考
アーカイブログモードへの変更
概要
マニュアルを参照にしてアーカイブログモードに変更したので備忘
方法
現在のモードを確認
SQL> archive log list データベース・ログ・モード 非アーカイブ・モード 自動アーカイブ 使用禁止 アーカイブ先 /u01/app/oracle/product/12.2.0/dbhome_1/dbs/arch 最も古いオンライン・ログ順序 11 現行のログ順序 13
インスタンスをシャットダウン後にmountモードにしてアーカイブログモードに変更
SQL> shutdown immediate; データベースがクローズされました。 データベースがディスマウントされました。 ORACLEインスタンスがシャットダウンされました。 SQL> startup mount; ORACLEインスタンスが起動しました。 Total System Global Area 1174405120 bytes Fixed Size 8792056 bytes Variable Size 436209672 bytes Database Buffers 721420288 bytes Redo Buffers 7983104 bytes データベースがマウントされました。 SQL> alter database open; データベースが変更されました。 SQL> archive log list データベース・ログ・モード アーカイブ・モード 自動アーカイブ 有効 アーカイブ先 /u01/app/oracle/product/12.2.0/dbhome_1/dbs/arch 最も古いオンライン・ログ順序 11 アーカイブする次のログ順序 13 現行のログ順序 13
参考
レンジパーティション表の作成とパーティション・プルーニングの確認
概要
レンジパーティション表を作成し、実行計画を確認してパーティション・プルーニングが効いていることを確認したので備忘
レンジパーティション表の作成
SQL> CREATE TABLE sales ( prod_id NUMBER(6) , cust_id NUMBER , time_id DATE , channel_id CHAR(1) , promo_id NUMBER(6) , quantity_sold NUMBER(3) , amount_sold NUMBER(10,2) ) PARTITION BY RANGE (time_id) ( PARTITION sales_q1_2006 VALUES LESS THAN (TO_DATE('2022-03-01','yyyy-mm-dd')) , PARTITION sales_q2_2006 VALUES LESS THAN (TO_DATE('2022-04-01','yyyy-mm-dd')) , PARTITION sales_q3_2006 VALUES LESS THAN (TO_DATE('2022-05-01','yyyy-mm-dd')) , PARTITION sales_q4_2006 VALUES LESS THAN (TO_DATE('2022-06-01','yyyy-mm-dd')) ); 表が作成されました。
実行計画を確認し、パーティション・プルーニングを確認
PstartとPstopが4となっているためパーティション・プルーニングが効いていると思われる
SQL> set autotrace on explain SQL> select count(*) from sales where time_id = to_date('2022-05-30','YYYY-MM-DD'); COUNT(*) ---------- 0 実行計画 ---------------------------------------------------------- Plan hash value: 642363238 -------------------------------------------------------------------------------- ----------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop | -------------------------------------------------------------------------------- ----------------- | 0 | SELECT STATEMENT | | 1 | 9 | 2 (0)| 00:00:01 | | | | 1 | SORT AGGREGATE | | 1 | 9 | | | | | | 2 | PARTITION RANGE SINGLE| | 1 | 9 | 2 (0)| 00:00:01 | 4 | 4 | |* 3 | TABLE ACCESS FULL | SALES | 1 | 9 | 2 (0)| 00:00:01 | 4 | 4 | -------------------------------------------------------------------------------- ----------------- Predicate Information (identified by operation id): --------------------------------------------------- 3 - filter("TIME_ID"=TO_DATE(' 2022-05-30 00:00:00', 'syyyy-mm-dd hh24:mi:ss' )) Note ----- - dynamic statistics used: dynamic sampling (level=2) SQL>
参考
Linuxサーバのユーザ一覧を取得する
概要
Linuxでユーザの一覧を取得したので備忘
方法
/etc/passwd
ファイルを確認
:
を区切り文字として1番目の項目を出力
cat /etc/passwd |awk -F ":" '{print $1}'|sort
bigfile表領域を作成する
概要
bigfileで表領域を作成したので備忘
方法
SQL> create bigfile tablespace bigtbs datafile '/u01/app/oracle/oradata/cdb1/orclpdb1/bigtbs01.dbf' size 50M; 表領域が作成されました。 ---表領域の確認 SQL> select f.FILE_NAME,f.BYTES/1024/1024 as "size",t.BIGFILE from 2 dba_data_files f,dba_tablespaces t 3 where f.TABLESPACE_NAME=t.TABLESPACE_NAME 4 and f.TABLESPACE_NAME='BIGTBS'; FILE_NAME size BIGFIL -------------------------------------------------- ---------- ------ /u01/app/oracle/oradata/cdb1/orclpdb1/bigtbs01.dbf 50 YES ---サイズの確認(bigfileなのでalter tablespaceでサイズ変更可能) SQL> alter tablespace BIGTBS resize 60M; 表領域が変更されました。 ---サイズの変更確認 SQL> select f.FILE_NAME,f.BYTES/1024/1024 as "size",t.BIGFILE from 2 dba_data_files f,dba_tablespaces t 3 where f.TABLESPACE_NAME=t.TABLESPACE_NAME 4 and f.TABLESPACE_NAME='BIGTBS'; FILE_NAME size BIGFIL -------------------------------------------------- ---------- ------ /u01/app/oracle/oradata/cdb1/orclpdb1/bigtbs01.dbf 60 YES