底辺SEの備忘録

スキル無しの底辺です。参考になりません。

実行計画でNESTED LOOPSを選択した際の外部表(駆動表)の選択について

事前準備 --table作成 create table tbl1(col1 number,col2 number,col3 number); create table tbl2(col1 number,col2 number,col3 number); --インデックス作成 CREATE INDEX tbl1_idx ON tbl1(col1); CREATE INDEX tbl2_idx ON tbl2(col1); --tbl1には10…

Linuxのプロセス生成forkとexeclの違い

fork関数は呼び出したプロセスのコピープロセスを作成する 確認したプログラム #include <stdio.h> #include <unistd.h> int main(void){ pid_t pid; int i; printf("start\n"); fork(); pid=getpid(); for(i=0;i<5;i++){ printf("pid=%d i=%d\n",pid,i); } } 実行結果 start pi</unistd.h></stdio.h>…

sqlplusのプロセスを確認する

ローカル接続(リスナーを経由しない場合) sqlplusとサーバプロセスの間に親子関係がある [root@localhost ~]# ps -ef |grep 9433| grep -v grep oracle 9433 3998 0 21:03 pts/0 00:00:00 sqlplus as sysdba oracle 9434 9433 0 21:03 ? 00:00:00 oracleorcl…

LinuxでCPU使用率を上げる(使用率を上げた後にsarコマンドで確認)

CPUの数を確認 # cat /proc/cpuinfo | grep processor processor : 0 processor : 1 # 2つ存在することを確認 一方のCPUに負荷をかける 実行コマンドyes >> /dev/null & sarコマンドで確認 12:54:20 PM CPU %user %nice %system %iowait %steal %idle 12:54:…

oerrコマンドでエラーの内容を調べることが可能

[oracle@localhost ~]$ oerr ora 1555 01555, 00000, "snapshot too old: rollback segment number %s with name \"%s\" too small" // *Cause: rollback records needed by a reader for consistent read are // overwritten by other writers // *Action: …

sarコマンドでネットワーク使用状況を確認

コマンド sar -n DEV 1 ループバックアドレスにpingした状態で実行 実行コマンド sar -n DEV 1|grep -e lo -e IFACE 実行結果 22時27分59秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 22時28分00秒 lo 2.00 2.00 0.16 0.16 0.00 0.00 0…

シェルスクリプトの中でsqlplusを実行

内容 ユーザ名(第1引数)、パスワード(第2引数)を渡し、test.sqlを10秒ごとに10回実行する。 #/bin/bash username="$1" password="$2" SLEEP_TIME=10 MAX_LOOP_COUNT=10 LOOP_COUNT=0 script_file="test.sql" while [ $LOOP_COUNT -lt $MAX_LOOP_COUNT ] do c…

OracleのPK削除時の挙動について

概要 OracleのPK削除時の挙動について確認しました。 確認内容 CREATE TABLE文でPK付のテーブルを作成します。 SQL> CREATE TABLE TEST.TEST0722 2 ( 3 COL1 NUMBER, 4 COL2 NUMBER, 5 CONSTRAINT TEST0722_PK PRIMARY KEY( COL1 ) 6 ); 表が作成されました…

iノードについて

iノードとは Linuxのファイルシステムでは、「ファイルの中身(データ)」と 「ファイルの属性や管理情報」 は別々に保存される。 「ファイルの属性や管理情報」を格納する記憶領域をiノードと呼ぶ。 全てのファイルにはiノード番号が振られ対応するiノードと…

select文の中でSQL文も組み立てる

方法 連結演算子||を使用する。 シングルコーテーションは、シングルコーテーションでエスケープする。 例 あんまりないと思いますが、1行ずつdelete文を組み立てたいとき SQL> select * from test.test_0615; COL1 COL2 -------- -------- aaaa bbbb cccc b…

OracleでSYSDBA権限を持つユーザを確認する方法

V$PWFILE_USERSで確認することが可能 表示例 SQL> select username,sysdba from V$PWFILE_USERS; USERNAME SYSDBA ------------------------------ ---------- SYS TRUE SYSDG FALSE SYSBACKUP FALSE SYSKM FALSE SQL> 参考 V$PWFILE_USERSは、パスワード・…

straceを使用してローカルネーミング接続でtnsnames.oraファイルを読み込んでいることを確認

概要 straceを使用してsqlplusを使用してローカルネーミング接続した際に tnsnames.oraファイルを読み込んでいることを確認しました。 方法 以下のコマンドを実行 strace sqlplus <ユーザ名>/<パスワード>@<ネットサービス名> 出力結果の中に以下を確認 acce…

特定の列名が存在する(しない)テーブルの一覧を表示するSQL(Oracle版)

概要 Oracleで特定の列名が存在するテーブル(しない)の一覧を表示するSQL 方法 以下で取得可能と思われる。。。 TESTスキーマ内の列名COL1が存在するテーブルを抽出 SELECT TABLE_NAME FROM DBA_TABLES A WHERE OWNER='TEST' AND EXISTS(SELECT 'X' FROM DBA…

Linuxで一つ前にいたフォルダに戻るコマンド

概要 Linuxで一つ前のフォルダに戻るコマンドを本日知りました。。。 方法 cd -で可能

zipコマンドでフォルダも含めて再帰的に圧縮する

概要 本日フォルダも含めてファイル・フォルダを圧縮したので備忘 方法 zip -r (zipファイル) (フォルダ名)で可能 zip -r log.zip log のような形で実行すれば良いかと思います。

リスナーログの中身を確認する

備忘 リスナーログの中身を確認したので備忘 リスナーログの場所 テキスト形式のログは %ORACLE_BASE%\diag\tnslsnr\<ホスト名>\<リスナー名>\trace\リスナー名.log に出力される ログの出方 ターミナルで簡易接続 sqlplus sys/manager@localhost:1521/c…

パーティション表の情報を確認する

概要 作成したパーティション表の パーティションタイプ パーティション名 パーティションキー HIGH_VALUE を確認したので備忘 方法 以下で可能 データディクショナリビューの名前が紛らわしいですね。。。 SQL> select 2 t.table_name,t.partitioning_type,…

アーカイブログモードへの変更

概要 マニュアルを参照にしてアーカイブログモードに変更したので備忘 方法 現在のモードを確認 SQL> archive log list データベース・ログ・モード 非アーカイブ・モード 自動アーカイブ 使用禁止 アーカイブ先 /u01/app/oracle/product/12.2.0/dbhome_1/db…

レンジパーティション表の作成とパーティション・プルーニングの確認

概要 レンジパーティション表を作成し、実行計画を確認してパーティション・プルーニングが効いていることを確認したので備忘 レンジパーティション表の作成 SQL> CREATE TABLE sales ( prod_id NUMBER(6) , cust_id NUMBER , time_id DATE , channel_id CHA…

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…

データベースのデフォルト表領域を確認・変更する

概要 「データベース」のデフォルト表領域を確認・変更したので備忘 方法 database_propertiesで確認可能 SQL> col PROPERTY_NAME for a30 SQL> col PROPERTY_VALUE for a30 SQL> select PROPERTY_NAME,PROPERTY_VALUE from database_properties 2 where PRO…

v$sessionで実行中のSQLのsqlidを確認する

概要 v$sessionの情報を元に実行中のsqlidを確認したので備忘 方法 select program,sql_id from v$session where sql_id is not null and type='USER'で確認可能 type='USER'とすることでユーザプロセスに絞っています。 SQL> select program,sql_id from v$…

Linuxで容量の大きいファイルを探す

概要 検証環境のLinux環境の容量が一杯になりそうだったので 容量の大きいファイルを探しました。 もっと良い方法があるような気がします。 duコマンドを使用する duコマンドでサイズが大きそうなファイルを検索しました。 duコマンドはファイルのみを表示で…

Redoログのグループ追加とメンバーの追加

概要 Oracle(12cR1)のRedoログのグループ追加とメンバーの追加を マニュアルを参考にして実施したので備忘 現在のRedoログのグループ,メンバー,サイズを確認 SQL> select l.group#,f.member,l.bytes/1024/1024 as MB from v$logfile f,v$log l 2 where l.gro…

awkでテキストファイルのフィールドを表示

概要 awkを使用してテキストファイルの一部を表示。区切り文字は空白 方法 awk '{print XX}'で可能とのこと 例 test.txt aaa bbb ccc ddd eee fff ggg hhh iii jjj kkk lll mmm nnn ooo ppp 2番目のフィールドだけ表示 cat test.txt | awk '{print $2}' bbb …

Oracleの制御ファイルの多重化

概要 Oracle(12c)での制御ファイルの多重化の手順を確認したので備忘 参考マニュアル 10.3.2 制御ファイルの追加コピーの作成、名前変更および再配置 実施手順 初期化パラメータ(spファイルの場所と制御ファイルの場所)を確認 SQL> show parameter control_f…

csvファイルの各項目を出力するシェルスクリプト

概要 以下のようなcsvファイルがあった時にファイルを読み込んで 項目の値を出力するシェルスクリプトを作成したので備忘。 SCHEMA1,TEST1,10 SCHEMA2,TEST2,20 SCHEMA3,TEST3,30 シェル 全ての項目を出力する #!/bin/sh table_list=$1 while read line do s…

Oracleでグローバルデータベース名を確認する

概要 Oracleでグローバルデータベース名を確認する方法を備忘として残します 方法 GLOBAL_NAMEビューで確認可能 SQL> desc global_name 名前 NULL? 型 ----------------------------------------- -------- ---------------------------- GLOBAL_NAME VARCHA…

マルチテナント構成で環境を確認するために使用したコマンド

概要 Oracleのマルチテナント構成で環境を確認するために使用したコマンドを 備忘として残します 接続しているコンテナの表示 show con_nameで確認 SQL> show con_name CON_NAME ------------------------------ CDB$ROOT SQL> PDBの情報を表示 show pdbsで…