2023年1月26日木曜日

zabbix WEB監視 SSL connect error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small

# update-crypto-policies --show
# update-crypto-policies --set LEGACY
# systemctl restart zabbix-server zabbix-agent2 httpd php-fpm

[戻]
# update-crypto-policies --set DEFAULT

2023年1月25日水曜日

EC2 Rocky linux 8 に oracle19c インストール

【EC2作成】
名前: test-oracle19c-sjis
AMI: Rocky Linux 8 (official)
t3a.small
test-step-key
test-vpc
test-subnet-private-db-1a
SG: test-oracle19c-1a
プライマリIP: 192.168.200.202
ストレージ:50GB/gp2
user:rocky
$ sudo timedatectl set-timezone Asia/Tokyo
$ sudo localectl set-locale LANG=ja_JP.utf8
$ timedatectl; localectl
$ sudo  vi /etc/yum.conf
proxy=http://192.168.13.101:3128
$ sudo vi  /etc/profile.d/amazon-linux-extras.sh
export http_proxy=http://192.168.13.101:3128
export https_proxy=http://192.168.13.101:3128
$ sudo mkdir /aws
$ sudo vi /etc/fstab
192.168.210.101:/test-cxdnext-filegateway     /aws        nfs    rw,hard,nolock    0   0
$ sudo mount -a
$ sudo dnf remove zabbix*
$ sudo dnf clean all
$ sudo dnf update
$ sudo reboot

$ sudo dnf install https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-agent2-6.4.0-release1.el8.x86_64.rpm
$ sudo vi /etc/zabbix/zabbix_agent2.conf
Server=192.168.23.103
ServerActive=192.168.23.103:10051
Hostname=oracle19c
HostMetadata=Rockylinux
HostMetadataItem=system.uname
AllowKey=system.run[*]
$ sudo visudo
zabbix  ALL=(ALL)       NOPASSWD: ALL


$ sudo semanage boolean -l | grep zabbix
$ sudo setsebool -P httpd_can_connect_zabbix on
$ sudo setsebool -P zabbix_can_network on
$ sudo setsebool -P zabbix_run_sudo  on
$ sudo dnf install firewall-cmd
$ sudo firewall-cmd --add-port=10050/tcp --zone=public --permanent
$ sudo firewall-cmd --reload
$ sudo systemctl restart zabbix-agent2
$ sudo systemctl enable zabbix-agent2

又は、
$ sudo vi /etc/selinux/config
SELINUX=desabled
$ sudo setenforce 0


$ cd ~/
$ mkdir Oracle
$ cd Oracle
$ sudo sh
$ sudo mkdir /opt/oracle
$ sudo adduser oracle
$ sudo passwd oracle 
$ sudo groupadd oinstall
$ sudo chown oracle:oinstall /opt/oracle

$ curl -o compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
$ curl -o compat-libcap1-1.10-7.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libcap1-1.10-7.el7.x86_64.rpm
$ sudo rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
$ sudo rpm -ivh compat-libcap1-1.10-7.el7.x86_64.rpm
$  curl -OL https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm -x http://192.168.13.101:3128

$ sudo dnf -y install   /lib64/libnsl.so.1        <- 下記参照。エラーの為追加



$ sudo dnf -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

$ rpm -qp  --scripts oracle-database-ee-19c-1.0-1.x86_64.rpm

$ sudo  dnf -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
$ sudo vi /etc/sysconfig/oracledb_ORCLCDB-19c.conf

[$ vi ~/.bash_profile]
$ sudo vi /etc/profile.d/oracle.sh <<__EOF__
# for ORACLE
export ORACLE_BASE=/opt/oracle       # ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRATY_PATH:$ORACLE_HOME/lib
export ORACLE_SID=ORCLCDB
export LANG=ja_JP.utf-8
export NLS_LANG=Japanese_Japan.AL32UTF8
export CV_ASSUME_DISTID=RHEL8.2
export TNS_ADMIN
umask 022

alias sqlplus='rlwrap -pRed -if /usr/local/opt/rlwrap-extensions/sqlplus sqlplus'
PATH=$PATH:/usr/local/bin
__EOF__

$ source /etc/profile
$ sudo  /etc/init.d/oracledb_ORCLCDB-19c configure
すごーく時間がかかる。

※ SJISの場合(JA16SJIS)
export LANG='ja_JP.Shift_JIS'
export NLS_LANG=Japanese_Japan.JA16SJIS

SQL> SELECT PARAMETER, VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER LIKE '%CHARACTERSET%'
PARAMETER        VALUE
------------------------------ ------------------------------
NLS_CHARACTERSET        JA16SJIS
NLS_NCHAR_CHARACTERSET        AL16UTF16

PARAMETER        VALUE
------------------------------ ------------------------------
NLS_NCHAR_CHARACTERSET        AL16UTF16
NLS_CHARACTERSET        AL32UTF8

$ sudo dnf -y install epel-release
$ sudo dnf -y install rlwrap
[$ sudo dnf install wget ]
$ sudo mkdir  -p /usr/local/opt/rlwrap-extensions
$ wget http://www.linuxification.at/download/rlwrap-extensions-V12-0.05.tar.gz (12までしかない)
$ sudo mv rlwrap-extensions-V12-0.05.tar.gz  /usr/local/opt/rlwrap-extensions/
$  cd /usr/local/opt/rlwrap-extensions
$ sudo  tar xzvf rlwrap-extensions-V12-0.05.tar.gz     <-辞書
$ sudo  vi /usr/local/opt/rlwrap-extensions/sql+
#R_HOME=${RLWRAP_HOME:=/usr/local/share/rlwrap/completions}
R_HOME=${RLWRAP_HOME:=/usr/local/opt/rlwrap-extensions}
$ cd /usr/local/bin
$ sudo  ln -s  /usr/local/opt/rlwrap-extensions/asm+ asm+
$ sudo  ln -s  /usr/local/opt/rlwrap-extensions/sql+ sql+
$ sudo su - oracle
$ sqlplus / as sysdba
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> show pdbs
    CON_ID CON_NAME   OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED   READ ONLY  NO
3 ORCLPDB1   READ WRITE NO

【起動】
$ sudo su - oracle
$ sqlplus / as sysdba
sql> startup
sql> alter user sys identified by oracle;
sql> select dbms_xdb_config.getHttpsPort() from dual;
sql> exec DBMS_XDB_CONFIG.SETHTTPSPORT(5500);
sql> select dbms_xdb_config.getHttpsPort() from dual;
sql>!
URL https://192.168.200.203:5500/em
URL: https://localhost:5500/em
USR: sys
PW:password
Container Name:CDB$ROOT 
※起動するまでに少し時間がかかる。
sql> alter pluggable database orclpdb1 open;
sql> alter pluggable database arcsdbms open;
sql> alter pluggable database zabbix open;
sql> alter pluggable database all save state;                          # 次回自動OPEN
sql> ! lsnrctl start    LISTENER
sql> ! lsnrctl status LISTENER

【自動起動】
$ sudo vi /etc/oratab
ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y
$ sudo vi /etc/sysconfig/env.oracle <<__EOF__
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
PATH=$PATH:/usr/bin:$ORACLE_HOME/bin
LD_LIBRARY_PATH=$LD_LIBRATY_PATH:$ORACLE_HOME/lib
NLS_LANG=Japanese_Japan.AL32UTF8
ORACLE_SID=ORCLCDB
__EOF__
$ sudo vi /etc/systemd/system/oracle.service <<__EOF__
[Unit]
Description=Oracle Databaes Service
After=network.target oraclelsnr.service
[Service]
Type=forking
RemainAfterExit=yes
TimeoutStopSec=5min
EnvironmentFile=/etc/sysconfig/env.oracle
ExecStart=/opt/oracle/product/19c/dbhome_1/bin/dbstart  $ORACLE_HOME ExecStop=/opt/oracle/product/19c/dbhome_1/bin/dbshut   $ORACLE_HOME Restart=no
User=oracle
Group=oinstall
KillMode=none
[Install]
WantedBy=multi-user.target
__EOF__
$ sudo vi /etc/systemd/system/oraclelsnr.service <<__EOF__
[Unit]
Description = Oracle Listener
After=network.target
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/env.oracle
ExecStart=/opt/oracle/product/19c/dbhome_1/bin/lsnrctl start
ExecStop =/opt/oracle/product/19c/dbhome_1/bin/lsnrctl stop
Restart=always
User=oracle
Group=oinstall
[Install]
WantedBy=multi-user.target
__EOF__
$ sudo  systemctl daemon-reload
$ sudo  systemctl start oracle
$ sudo systemctl enable oracle
$ sudo  systemctl start oraclelsnr
$ sudo systemctl enable oraclelsnr

※ ERROR  oraclelsnr.service: Failed to determine user credentials: Bad message
→未解決


【切替】
1)プラガブル・データベース
       ALTER SESSION SET CONTAINER=ARCSDBMS;
2)session
       sqlplus      admin/passwd@localhost:1521/arcsdbms
       sqlplus       zabbix_mon/zbx%xxxxxx%@zabbix  
       connect    admin/passwd@localhost:1521/arcsdbms;
       connect  / as sysdba    


############### ここまで ######## 以下参考 #################





下記【エラー2】が出て終わらない。

# setenforce 0


# su - oracle
$ sqlplus / as sysdba
sql> show con_name
sql> show pdbs
sql> alter session set container=PDB$SEED;
sql>  select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/opt/oracle/oradata/ORCLCDB/pdbseed/system01.dbf
/opt/oracle/oradata/ORCLCDB/pdbseed/sysaux01.dbf
/opt/oracle/oradata/ORCLCDB/pdbseed/undotbs01.dbf
sql> exit
# sqlplus / as sysdba
sql> create pluggable database ARCSDBMS admin user admin  identified by password file_name_convert=( '/opt/oracle/oradata/ORCLCDB/pdbseed/','/opt/oracle/oradata/ORCLCDB/ARCSDBMS');
sql> show pdbs
    CON_ID CON_NAME   OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED   READ ONLY  NO
3 ORCLPDB1   READ WRITE NO
4 ARCSDBMS   MOUNTED
sql>  alter session set container=ARCSDBMS;
sql> startup
sql> alter pluggable database all save state;     # pdb自動起動 個別の場合は、all→p1,p2
sql>  grant connect to admin;
sql> grant create table to admin;
sql> grant SELECT any table ,UPDATE any table ,DELETE any table ,INSERT any table to admin;
sql> grant CREATE any table to admin;
sql>  grant DROP any table to admin;
sql> grant unlimited tablespace to admin;
sql> grant create any index to admin;
sql> grant drop any index to admin;
sql> grant alter any table to admin;

alter session set container=ARCSDBMS;
create user arcsdbcb identified by password;
alter     user arcsdbcb identified by "new password";
grant connect to arcsdbcb;
grant SELECT any table ,UPDATE any table ,DELETE any table ,INSERT any table to arcsdbcb;
grant CREATE any table to arcsdbcb;
grant DROP any table to arcsdbcb;

# lsnrctl start listener
# lsnrctl status
リスナーはサービスをサポートしていません。
sql> alter system set local_listener='(ADDRESS=(PROTOCOL=tcp)(HOST=ip-192-168-200-201.ap-northeast-1.compute.internal)(PORT=1521))' scope=both;
sql>  alter  system register;
# lsnrctl status
# lsnrctl stop


---------------------------------------------------------------------------------------------------
【エラー1】も【エラー2】も下記で解決。
# dnf install   /lib64/libnsl.so.1
# ls -l /lib64/libnsl*
-rwxr-xr-x  1 root root  99152  9月 27 16:36 /lib64/libnsl-2.28.so
lrwxrwxrwx  1 root root     14  9月 27 16:26 /lib64/libnsl.so.1 -> libnsl-2.28.so
lrwxrwxrwx. 1 root root     15  4月 12  2021 /lib64/libnsl.so.2 -> libnsl.so.2.0.0
-rwxr-xr-x. 1 root root 100248  4月 12  2021 /lib64/libnsl.so.2.0.0

※ dnf install libnsl.so.1では、通常、32bits版しかはいらないよう。
     明示的に64bits版をインストールする必要がある。
-----------------------------------------------------------------------------------------------------
【エラー4】
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: ��&apos;/opt/oracle/product/19c/dbhome_1/dbs/initorcl.ora&apos;��
→  $  export ORACLE_SID=ORCLCDB

【エラー3】
ファイル"/etc/oratab"にアクセスできません。
→ #/opt/oracle/product/19c/dbhome_1/root.sh

【エラー2】
Configuring Oracle Database ORCLCDB.
java.library.pathシステム変数が欠落しているか無効です。java.library.pathを正しい値に設定してから、操作を再試行してください。
[FATAL] [INS-00001] 不明なリカバリ不能のエラー
   原因: 使用可能な追加情報はありません。
   アクション: ログを参照するか、Oracleサポート・サービスに連絡してください
   サマリー:
       - [DBT-00006] ロギング・ディレクトリを作成できませんでした。
       - [DBT-00006] ロギング・ディレクトリを作成できませんでした。

Database configuration failed.


【 エラー1】
# dnf -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
メタデータの期限切れの最終確認: 0:14:30 時間前の 2023年02月09日 05時27分41秒 に実施しました。
依存関係が解決しました。
=================================================================================================================================
 パッケージ                               アーキテクチャー         バージョン               リポジトリー                   サイズ
=================================================================================================================================
インストール:
 oracle-database-ee-19c                   x86_64                   1.0-1                    @commandline                   2.5 G

トランザクションの概要
=================================================================================================================================
インストール  1 パッケージ

合計サイズ: 2.5 G
インストール後のサイズ: 6.9 G
パッケージのダウンロード:
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                         1/1 
  scriptletの実行中: oracle-database-ee-19c-1.0-1.x86_64                                                                     1/1 
  インストール中   : oracle-database-ee-19c-1.0-1.x86_64                                                                     1/1 
  scriptletの実行中: oracle-database-ee-19c-1.0-1.x86_64                                                                     1/1 
Exception java.lang.UnsatisfiedLinkError: /opt/oracle/product/19c/dbhome_1/oui/lib/linux64/liboraInstaller.so: libnsl.so.1: cannot open shared object file: No such file or directory occurred..
java.lang.UnsatisfiedLinkError: /opt/oracle/product/19c/dbhome_1/oui/lib/linux64/liboraInstaller.so: libnsl.so.1: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.loadNativeLib(OiipuUnixOps.java:388)
at oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps.<clinit>(OiipuUnixOps.java:130)
at oracle.sysman.oii.oiip.oiipg.OiipgEnvironment.getEnv(OiipgEnvironment.java:201)
at oracle.sysman.oii.oiix.OiixIniPair.instantiateEnvVars(OiixIniPair.java:299)
at oracle.sysman.oii.oiix.OiixIniPair.updateValue(OiixIniPair.java:230)
at oracle.sysman.oii.oiix.OiixIniPair.<init>(OiixIniPair.java:148)
at oracle.sysman.oii.oiix.OiixIniFile.readFile(OiixIniFile.java:809)
at oracle.sysman.oii.oiix.OiixIniFile.readIniFile(OiixIniFile.java:978)
at oracle.sysman.oii.oiix.OiixIniFile.getProfileString(OiixIniFile.java:385)
at oracle.sysman.oii.oiix.OiixOraparam.getOraparamProfileString(OiixOraparam.java:338)
at oracle.sysman.oii.oiix.OiixOraparam.getOraparamProfileString(OiixOraparam.java:296)
at oracle.sysman.oii.oiix.OiixOraparam.usePrereqChecker(OiixOraparam.java:416)
at oracle.sysman.oii.oiic.OiicSessionContext.setVariables(OiicSessionContext.java:1325)
at oracle.sysman.oii.oiic.OiicBaseInventoryApp.execute(OiicBaseInventoryApp.java:771)
at oracle.sysman.oii.oiic.OiicBaseInventoryApp.main_helper(OiicBaseInventoryApp.java:690)
at oracle.sysman.oii.oiic.OiicDetachHome.main(OiicDetachHome.java:420)
'DetachHome'に失敗しました。
Exception in thread "main" java.lang.NullPointerException
at oracle.sysman.oii.oiic.OiicBaseInventoryApp.main_helper(OiicBaseInventoryApp.java:706)
at oracle.sysman.oii.oiic.OiicDetachHome.main(OiicDetachHome.java:420)
Exception java.lang.NoClassDefFoundError: Could not initialize class oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps occurred..
java.lang.NoClassDefFoundError: Could not initialize class oracle.sysman.oii.oiip.osd.unix.OiipuUnixOps
at oracle.sysman.oii.oiip.oiipg.OiipgEnvironment.getEnv(OiipgEnvironment.java:201)
at oracle.sysman.oii.oiix.OiixIniPair.instantiateEnvVars(OiixIniPair.java:299)
at oracle.sysman.oii.oiix.OiixIniPair.updateValue(OiixIniPair.java:230)
at oracle.sysman.oii.oiix.OiixIniPair.<init>(OiixIniPair.java:148)
at oracle.sysman.oii.oiix.OiixIniFile.readFile(OiixIniFile.java:809)
at oracle.sysman.oii.oiix.OiixIniFile.readIniFile(OiixIniFile.java:978)
at oracle.sysman.oii.oiix.OiixIniFile.getProfileString(OiixIniFile.java:385)
at oracle.sysman.oii.oiix.OiixOraparam.getOraparamProfileString(OiixOraparam.java:338)
at oracle.sysman.oii.oiix.OiixOraparam.getOraparamProfileString(OiixOraparam.java:296)
at oracle.sysman.oii.oiix.OiixOraparam.usePrereqChecker(OiixOraparam.java:416)
at oracle.sysman.oii.oiic.OiicSessionContext.setVariables(OiicSessionContext.java:1325)
at oracle.sysman.oii.oiic.OiicBaseInventoryApp.execute(OiicBaseInventoryApp.java:771)
at oracle.sysman.oii.oiic.OiicBaseInventoryApp.main_helper(OiicBaseInventoryApp.java:690)
at oracle.sysman.oii.oiic.OiicAttachHome.main(OiicAttachHome.java:696)
'AttachHome'に失敗しました。
Exception in thread "main" java.lang.NullPointerException
at oracle.sysman.oii.oiic.OiicBaseInventoryApp.main_helper(OiicBaseInventoryApp.java:706)
at oracle.sysman.oii.oiic.OiicAttachHome.main(OiicAttachHome.java:696)
[SEVERE] An error occurred while registering the Oracle home. Verify logs in /var/log/oracle-database-ee-19c/results/oraInstall.log and /opt/oracle/oraInventory for more details and try again.
警告: %post(oracle-database-ee-19c-1.0-1.x86_64) スクリプトの実行に失敗しました。終了ステータス 1

Error in POSTIN scriptlet in rpm package oracle-database-ee-19c
  検証             : oracle-database-ee-19c-1.0-1.x86_64                                                                     1/1 

インストール済み:
  oracle-database-ee-19c-1.0-1.x86_64                                                                                            

完了しました!
sh-4.4# 


# su - root
# /etc/init.d/oracledb_ORCLCDB-19c configure



【amazon linux 2 では下記依存関係でエラー】
依存性でエラー
パッケージは依存関係に問題があるため、飛ばします:
    cpp-7.3.1-15.amzn2.x86_64 (amzn2-core から)
    gcc-7.3.1-15.amzn2.x86_64 (amzn2-core から)
    gcc-c++-7.3.1-15.amzn2.x86_64 (amzn2-core から)
    glibc-devel-2.26-62.amzn2.x86_64 (amzn2-core から)
    glibc-headers-2.26-62.amzn2.x86_64 (amzn2-core から)
    kernel-headers-5.10.162-141.675.amzn2.x86_64 (amzn2extra-kernel-5.10 から)
    ksh-20120801-247.amzn2.0.2.x86_64 (amzn2-core から)
    libICE-1.0.9-9.amzn2.0.2.x86_64 (amzn2-core から)
    libSM-1.2.2-2.amzn2.0.2.x86_64 (amzn2-core から)
    libX11-1.6.7-3.amzn2.0.2.x86_64 (amzn2-core から)
    libX11-common-1.6.7-3.amzn2.0.2.noarch (amzn2-core から)
    libXau-1.0.8-2.1.amzn2.0.2.x86_64 (amzn2-core から)
    libXext-1.3.3-3.amzn2.0.2.x86_64 (amzn2-core から)
    libXi-1.7.9-1.amzn2.0.2.x86_64 (amzn2-core から)
    libXinerama-1.1.3-2.1.amzn2.0.2.x86_64 (amzn2-core から)
    libXmu-1.1.2-2.amzn2.0.2.x86_64 (amzn2-core から)
    libXrandr-1.5.1-2.amzn2.0.3.x86_64 (amzn2-core から)
    libXrender-0.9.10-1.amzn2.0.2.x86_64 (amzn2-core から)
    libXt-1.1.5-3.amzn2.0.2.x86_64 (amzn2-core から)
    libXtst-1.2.3-1.amzn2.0.2.x86_64 (amzn2-core から)
    libXv-1.0.11-1.amzn2.0.2.x86_64 (amzn2-core から)
    libXxf86dga-1.1.4-2.1.amzn2.0.2.x86_64 (amzn2-core から)
    libXxf86misc-1.0.3-7.1.amzn2.0.2.x86_64 (amzn2-core から)
    libXxf86vm-1.1.4-1.amzn2.0.2.x86_64 (amzn2-core から)
    libaio-devel-0.3.109-13.amzn2.0.2.x86_64 (amzn2-core から)
    libatomic-7.3.1-15.amzn2.x86_64 (amzn2-core から)
    libcilkrts-7.3.1-15.amzn2.x86_64 (amzn2-core から)
    libdmx-1.1.3-3.amzn2.0.2.x86_64 (amzn2-core から)
    libitm-7.3.1-15.amzn2.x86_64 (amzn2-core から)
    libmpc-1.0.1-3.amzn2.0.2.x86_64 (amzn2-core から)
    libmpx-7.3.1-15.amzn2.x86_64 (amzn2-core から)
    libquadmath-7.3.1-15.amzn2.x86_64 (amzn2-core から)
    libsanitizer-7.3.1-15.amzn2.x86_64 (amzn2-core から)
    libxcb-1.12-1.amzn2.0.2.x86_64 (amzn2-core から)
    mailx-12.5-19.amzn2.x86_64 (amzn2-core から)
    mpfr-3.1.1-4.amzn2.0.2.x86_64 (amzn2-core から)
    oracle-database-preinstall-19c-1.0-1.el7.x86_64 (/oracle-database-preinstall-19c-1.0-1.el7.x86_64 から)
    1:smartmontools-7.0-2.amzn2.x86_64 (amzn2-core から)
    xorg-x11-utils-7.5-23.amzn2.x86_64 (amzn2-core から)
    1:xorg-x11-xauth-1.0.9-1.amzn2.0.2.x86_64 (amzn2-core から)

# yum -y install gcc gcc-c++  ksh  libICE  libX11 libSM libXext libXi libXinerama libXmu libXrandr  libXtst libXv libXxf86dga libXxf86misc  libXxf86vm  libaio-devel libdmx mailx smartmontools xorg-x11-utils xorg-x11-xauth

【依存関係のエラーで  oracle-database-preinstall-19c-1.0-1.el7.x86_6がインストールできない。】
# rpm -qip    oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm               # 詳細確認
# rpm -qpR   oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm              #依存関係確認
# rpm -qlp    oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm               # 中身確認
# rpm2cpio  oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm | cpio -id  #中身展開
# rpm -qp --scripts  oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm       # 前後処理
 # rpm -i --test oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm                  # test
# rpm -qp --changelog oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm







2023年1月19日木曜日

ORACLE AWRレポート 取得

$ sqlplus / as sysdba
SQL> @?/rdbms/admin/awrrpt
Enter value for report_type: html
Enter value for num_days: 7
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 69752
Begin Snapshot Id specified: 69752

Enter value for end_snap: 69910
End   Snapshot Id specified: 69910
Enter value for report_name: return
Using the report name awrrpt_2_69752_69910.html

【diffをとる場合】
SQL> @?/rdbms/admin/awrddrpt
期間1、期間2を入力


【AWRレポートがとれない。】

SQL> show parameter
control_management_pack_access     string  NONE
timed_statistics                                     boolean  TRUE
statistics_level                                             string  TYPICAL
_object_statistics                                     boolean TRUE

■ UNUSABLEががないか?
SQL> select index_name,partition_name, status from user_ind_partitions where 
status = 'UNUSABLE' order by index_name;
→ 全て、USABLE 

■_object_statistics TRUEで無かった場合。
sql> alter system set "_object_statistics"=TRUE scope=both;
System altered.
SQL> select DBID, INSTANCE_NUMBER, SNAP_ID, count(SQL_ID) from WRH$_SQLSTAT group by DBID, INSTANCE_NUMBER, SNAP_ID order by 2, 1, 3 ;

DBID INSTANCE_NUMBER SNAP_ID COUNT(SQL_ID)
---------- --------------- ---------- -------------
3531627254 1 70355 115
3531627254 1 70356 111
3531627254 1 70357 100


3531627254 1 70583 94
229 rows selected.

【解決】
SQL> ALTER SYSTEM SET CONTROL_MANAGEMENT_PACK_ACCESS='DIAGNOSTIC+TUNING' SCOPE=MEMORY SID=‘sidxxxx’;
SQL> show parameter control_management_pack_access
NAME TYPE VALUE

------------------------------------ ----------- ------------------------------
control_management_pack_access string DIAGNOSTIC+TUNING → Noneになっていた。


【複数のAWRレポートを一括取得する。】

$ su - oracle
$ mkdir -p AWR/Tools/logs
$ vi /home/oracle/AWR/Tools/get_awr_base.sql <<__EOF__
set head off
set feed off

col min_snap new_value min_snap
col max_snap new_value max_snap

select max(SNAP_ID) min_snap from dba_hist_snapshot where INSTANCE_NUMBER=(select INSTANCE_NUMBER from v$instance) and
END_INTERVAL_TIME <= to_timestamp('&1'||':59','yyyy/mm/dd_hh24:mi:ss') ;

select max(SNAP_ID) max_snap from dba_hist_snapshot where INSTANCE_NUMBER=(select INSTANCE_NUMBER from v$instance) and
END_INTERVAL_TIME <= to_timestamp('&2'||':59','yyyy/mm/dd_hh24:mi:ss') ;

spool /home/oracle/AWR/Tools/get_awr.sql

select
'define report_type=html' || chr(10) ||
'define num_days=1' || chr(10) ||
'define begin_snap=' || SNAP_ID || chr(10) ||
'define end_snap=' || (SNAP_ID + 1)|| chr(10) ||
'define report_name=/home/oracle/AWR/Tools/logs/awr_' || instance_name || '_' || to_char(END_INTERVAL_TIME,'yyyymmdd_hh24mi') || '.html' || chr(10) ||
'@?/rdbms/admin/awrrpt.sql' || chr(10) ||
'execute DBMS_LOCK.SLEEP(1)' ||chr(10)
from DBA_HIST_SNAPSHOT s,v$instance i
where SNAP_ID between &min_snap and &max_snap -1
and s.INSTANCE_NUMBER = i.INSTANCE_NUMBER
order by SNAP_ID;

spool off
@/home/oracle/AWR/Tools/get_awr.sql
__EOF__

SQL> @get_awr_base.sql 2023/2/17_10:00 2023/2/21_09:00


SQL統計意味と使用方法
SQL ordered by Elapsed Time経過時間が長いSQL(項目の中の%CPUと%IOで、CPUとI/Oのどちらの割合が大きいか確認できる)
時間が掛っているSQLなので改善の対象になるが、これだけで最も影響が大きいかまでは判断できない(待機の割合が多いSQLを探す必要がある)。
SQL ordered by CPU Timeサーバー・プロセスのCPU時間が多いSQL(経過時間に対する比率が%CPU)
CPU Timeの割合が多い場合には、これと処理行数が上位のSQLの実行計画を確認する(処理行数を削減することで改善できるかを確認する)。
SQL ordered by User I/O Wait Timeサーバー・プロセスのI/O待機時間が長いSQL(経過時間に対する比率が%IO)
TEMPのI/O時間の割合が多い場合には、これの上位のSQLを確認する(実行計画のどこでTEMPを使用しているかは、後で説明するDBMS_XPLAN.DISPLAY_CURSOR関数やリアルタイムSQL監視で確認できる)。
SQL ordered by Gets論理I/O(DBバッファ・キャッシュ経由の論理I/O)が多いSQL
バッファ・キャッシュ経由のI/Oが多い場合は、これの値も確認して、キャッシュ・ヒット率の問題で時間が長いのではないことを確認する。
SQL ordered by Readsすべて(フラッシュ・キャッシュ+非フラッシュ・キャッシュ)のDBブロックの読込みが多いSQL
DBブロックのI/Oが多い場合は、これとSQL ordered by User I/O Wait Timeが上位のSQLの実行計画を確認する(I/O時間だけでなく読込み数も見ることで、読込み数を削減することで改善できるかを確認する)。
SQL ordered by Physical Reads
(UnOptimized)
非フラッシュ・キャッシュからのDBブロックの読込みが多いSQL(Oracle Database 11gR2から)
フラッシュ・キャッシュがない場合はSQL ordered by Readsと同じ。
SQL ordered by Executions実行回数が多いSQL(全体と1回あたりの処理行数が分かる)
CPU TimeやダイレクトI/Oが多い場合には、これの処理行数が多いSQLも確認する。
SQL ordered by Parse Calls解析コール数(ハード及びソフト・パース)が多いSQL
cursor: pin Sが多い場合には、ソフト・パースが多いことなので、これの上位のSQLを確認して、同時実行数の削減を検討する。cursor: pin X/cursor: mutex X/library cache: mutex ..が多い場合には、ハード・パースが多いことなので、これとSQL ordered by Versoion Countが上位のSQLを確認して、ハード・パースの数を削減する(共有メモリを増やす、カーソルの共有化などを行う)。
SQL ordered by Sharable Memory共有メモリ使用量が多いSQL(デフォルトは1Mバイト以上)
複雑なSQLや子カーソルが多いために多く消費しているので、共有メモリが不足するような場合には削減を検討する。
SQL ordered by Version Count子カーソル(同一SQLで実行計画が異なる)が多いSQL
cursor: mutex ../library cache: mutex ..が多い場合は、これの上位のSQLを確認して、子カーソルの削減を検討する。
SQL ordered by Cluster Wait Timeクラスタ待機時間が多いSQL(RACキャッシュ・フュージョン関係)
DBブロック競合なので、無駄なブロックにアクセスしない、パーティション化などを行う。


zabbix7 amazon linux2023 インストール postgres15

【postgres】 dnf -y install postgresql15-server postgresql15-server-devel postgresql-setup initdb passwd postgres vi `find / -name pg_hba.con...