Adithia88 / ORACLE-Database-Administrator

1 stars 0 forks source link

Day 2-Training #3

Open SarahShafira opened 2 months ago

SarahShafira commented 2 months ago

Day 2 Training Oracle

=== Startup Oracle DB + Listener ===

  1. Startup DB

$ sqlplus sys/Welcome1 as sysdba

Connected to an idle instance.

SQL> startup;

ORACLE instance started.

Total System Global Area 1048575776 bytes

Fixed Size 8904480 bytes

Variable Size 268435456 bytes

Database Buffers 763363328 bytes

Redo Buffers 7872512 bytes

Database mounted.

Database opened.

SQL> exit;

  1. Startup Listener

$ lsnrctl start

STATUS of the LISTENER


Alias LISTENER

Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production

Start Date 30-JAN-2024 09:35:13

Uptime 0 days 0 hr. 0 min. 0 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora

Listener Log File /u01/app/oracle/diag/tnslsnr/vmserver/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=vmserver.com)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

The listener supports no services

The command completed successfully

=== 04. Oracle Database Management Tools ===

--- Unlock + Change password user HR ---

$ sqlplus sys/Welcome1 as sysdba

SQL> alter user hr account unlock identified by Welcome1;

SQL> exit

--- SQL Plus ---

  1. Connect

$ sqlplus hr/Welcome1

Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.3.0.0.0

SQL> show user;

USER is "HR"

  1. Query Table + Views

SQL> select tname from tab;

TNAME


REGIONS

COUNTRIES

LOCATIONS

DEPARTMENTS

JOBS

EMPLOYEES

JOB_HISTORY

EMP_DETAILS_VIEW

8 rows selected.

  1. Melihat Struktur Table

SQL> describe EMPLOYEES

Name Null? Type


EMPLOYEE_ID NOT NULL NUMBER(6)

FIRST_NAME VARCHAR2(20)

LAST_NAME NOT NULL VARCHAR2(25)

EMAIL NOT NULL VARCHAR2(25)

PHONE_NUMBER VARCHAR2(20)

HIRE_DATE NOT NULL DATE

JOB_ID NOT NULL VARCHAR2(10)

SALARY NUMBER(8,2)

COMMISSION_PCT NUMBER(2,2)

MANAGER_ID NUMBER(6)

DEPARTMENT_ID NUMBER(4)

  1. Melihat informasi pegawai

SQL> select FIRST_NAME, HIRE_DATE, SALARY

from EMPLOYEES

where DEPARTMENT_ID = 50

order by SALARY desc;

FIRST_NAME HIRE_DATE SALARY


Adam 10-APR-05 8200

Matthew 18-JUL-04 8000

Payam 01-MAY-03 7900

...

  1. Login sebagai user SYSTEM

$ sqlplus system/Welcome1

SQL> show user

USER is "SYSTEM"

SQL> select tname from tab;

TNAME


LOGMNR_SESSION_EVOLVE$

LOGMNR_GLOBAL$

LOGMNR_GT_TAB_INCLUDE$

...

SQL> select FIRST_NAME, HIRE_DATE, SALARY

from EMPLOYEES

where DEPARTMENT_ID = 50

order by SALARY desc;

ERROR at line 2:

ORA-00942: table or view does not exist

Note: karena table atau view tidak ada di user SYSTEM, hanya ada di user HR

SQL> select FIRST_NAME, HIRE_DATE, SALARY

from hr.EMPLOYEES --> ditambah nama schema didepannya

where DEPARTMENT_ID = 50

order by SALARY desc;

FIRST_NAME HIRE_DATE SALARY


Adam 10-APR-05 8200

Matthew 18-JUL-04 8000

Payam 01-MAY-03 7900

...

SQL> ! clear

SQL> show user

USER is "SYSTEM"

SQL> connect hr/Welcome1 --> masuk ke user sqlplus tanpa exit

SQL> show user

USER is "HR"

--- SQL Developer ---

  1. Installer

    10g : installer terpisah

11g, 12c, 18c : installer include

19c : installer terpisah

  1. Download Oracle Software

    www.oracle.com

resources -> download -> developer download -> Developer Tools

  1. Check JVM

$ java -version

bash: java: command not found...

  1. Copy ke VM di /home/oracle

$ cd /home/oracle

$ ls *.rpm

jdk-8u301-linux-x64.rpm sqldeveloper-21.2.1-204.1703.noarch.rpm

  1. Install JDK (Java Development Kit)

$ su - --> install JDK pake user root / OS

cd /home/oracle

rpm -Uhv jdk-8u301-linux-x64.rpm

java -version

java version "1.8.0_301"

Java(TM) SE Runtime Environment (build 1.8.0_301-b09)

Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)

exit

$ java -version

java version "1.8.0_301"

Java(TM) SE Runtime Environment (build 1.8.0_301-b09)

Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)

  1. Install SQL Developer

$ su - --> install aplikasi harus meenggunakan user OS / linux as root

cd /home/oracle

rpm -Uhv sqldeveloper-21.2.1-204.1703.noarch.rpm

exit

  1. Jalankan SQL Developer

$ sqldeveloper

Buat koneksi sebagai user

Name : HR Connection

Username : hr

Password : Welcome1

Hostname : localhost

Port : 1521

SID : prod

  1. Menggunakan SQL Developer

select FIRST_NAME, HIRE_DATE, SALARY

from EMPLOYEES

where DEPARTMENT_ID = 50

order by SALARY desc;

SELECT

department_id,

department_name,

manager_id,

location_id

FROM

departments;

  1. Membuat koneksi sebagai user System dan SYS

Role : SYSDBA

  1. Jalankan SQL Developer => Mode DBA

View => DBA

--- Oracle Enterprise Manager (EM) ---

  1. Edition
  1. Download EM Cloud Control

    www.oracle.com

resources -> download -> developer download -> Middleware

  1. Akses Oracle EM Database Express

$ firefox &

https://vmserver.com:5500/em

https://192.168.161.129:5500/em

username : sys

password : Welcome1

=== 05. Managing the Database Instance ===

  1. 5 Buah files Oracle Database

SID : prod

a. Password File : $ORACLE_HOME/dbs/orapwSID

b. Parameter File : $ORACLE_HOME/dbs/spfileSID.ora

c. Control File : $ORACLE_BASE/oradata/SID/*.ctl

d. Redo Log File : $ORACLE_BASE/oradata/SID/*.log

e. Data File : $ORACLE_BASE/oradata/SID/*.dbf

  1. Using SQL*Plus to View Parameters

sqlplus / as sysdba

SQL> show user;

SQL> SELECT name, value FROM V$PARAMETER;

SQL> SELECT name, value

 FROM V$PARAMETER 

WHERE name = 'xml_db_events';

SQL> SHOW PARAMETER

SQL> SHOW PARAMETER SHARED_POOL_SIZE

NAME TYPE VALUE


shared_pool_size big integer 0

SQL> show parameter para

NAME TYPE VALUE


awr_pdb_max_parallel_slaves integer 10

cell_offload_parameters string

containers_parallel_degree integer 65535

  1. Using SQL Developer to View Parameters

    Jalankan SQL Developer => Mode DBA

    View => DBA

Database Configuration => Initialization Parameters

  1. Changing Parameter Values: Examples

SQL> SELECT SYSDATE FROM dual;

SYSDATE


19-MAR-24

SQL> show parameter NLS_DATE_FORMAT

NAME TYPE VALUE


nls_date_format string

SQL> ALTER SESSION SET NLS_DATE_FORMAT ='Month dd, yyyy';

SQL> show parameter NLS_DATE_FORMAT

NAME TYPE VALUE


nls_date_format string Month dd, yyyy

SQL> SELECT SYSDATE FROM dual;

SYSDATE


March 19, 2024

  1. Startup DB

$ sqlplus / as sysdba

SQL> select status from v$instance;

STATUS


OPEN

SQL> shutdown immediate;

Database closed. : close redo log file + data file

Database dismounted. : close control file

ORACLE instance shut down. : dealokasi memory + background process

Tahapan Menghidupkan Database

$ sqlplus sys/Welcome1 as sysdba ==> Password File

Connected to an idle instance.

SQL> Startup Nomount; ==> Parameter File -> DB Instance

ORACLE instance started.

Total System Global Area 1048575776 bytes

Fixed Size 8904480 bytes

Variable Size 293601280 bytes

Database Buffers 738197504 bytes

Redo Buffers 7872512 bytes

SQL> alter database mount; ==> Control File

SQL> alter database open; ==> Redo Log File + Data File

  1. Shutdown

DB

-> A

-> B

Shutdown A/I/T/N

-> C --> Ditolak

Normal : A, B tetap bisa kerja

     Jika A dan B mengakhiri session baru shutdown berjalan 

Transactional : A, B tetap bisa kerja

     Jika A dan B mengakhiri transaction (commit, rollback) baru shutdown berjalan 

Immediate : session user A, B langsung diputus, dan shutdown berjalan

Abort : Mirip seperti mati listrik

  1. Shutdown Abort

$ sqlplus / as sysdba

SQL> shutdown abort;

ORACLE instance shut down.

SQL> startup;

  1. Viewing the Alert Log

Lokasi : $ORACLE_BASE/diag/rdbms/sid/sid/trace/alert_sid.log

$ cd $ORACLE_BASE/diag/rdbms/prod/prod/trace/

$ ls *.log

alert_prod.log

$ more alert_prod.log

$ tail alert_prod.log

  1. Using Trace Files

Lokasi : $ORACLE_HOME/diag/rdbms/sid/sid/trace/*.trc

*.trm

$ cd $ORACLE_BASE/diag/rdbms/prod/prod/trace/

$ ls *.trc

$ ls *.trm

$ more prod_m001_17621.trc

$ more prod_m001_17621.trm

  1. Dynamic Performance Views

$ sqlplus / as sysdba

SQL> desc V$FIXED_TABLE

SQL> select count(*) from V$FIXED_TABLE;

COUNT(*)


2898

SQL> select name from V$FIXED_TABLE;

NAME


X$JOXMAG

X$JOXMEX

X$ALL_ASH

X$ALL_KESWXMON

X$ALL_KESWXMON_PLAN

2898 rows selected.

  1. Data Dictionary

$ sqlplus / as sysdba

SQL> desc dictionary;

Name Null? Type


TABLE_NAME VARCHAR2(128)

COMMENTS VARCHAR2(4000)

SQL> select count(*) from dictionary;

COUNT(*)


4690

Buat ngatur format ngeliat output query

SQL> column table_name format a25

SQL> column comments format a50

SQL> select table_name, comments from dictionary;

=== 06. Configuring the Oracle Network Environment ===

  1. Oracle Net Listener: Overview

$ more $ORACLE_HOME/network/admin/listener.ora

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = vmserver.com)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

)

  1. Using the Listener Control Utility

$ lsnrctl status

$ lsnrctl stop

$ lsnrctl status

$ lsnrctl start

  1. Membuat Listener

Name : LISTENER2

Protocol : TCP/IP

HOST : 192.11.12.20

Port : 1522

Database Service

Save network configuration

  1. Oracle Net Manager

$ netmgr &

$ more $ORACLE_HOME/network/admin/listener.ora

LISTENER2 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.11.12.20)(PORT = 1522))

)

SID_LIST_LISTENER2 =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = prod)

(ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)

(SID_NAME = prod)

)

)

ADR_BASE_LISTENER2 = /u01/app/oracle

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = vmserver.com)(PORT = 1521))

)

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

)

ADR_BASE_LISTENER = /u01/app/oracle

  1. Startup LISTENER2

$ lsnrctl status LISTENER2

$ lsnrctl start LISTENER2

$ lsnrctl status LISTENER2

  1. Persiapkan Env Client VM

2 user:

Password : Welcome1

$ hostname

vmclient.com

$ ifconfig

ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.11.12.30 netmask 255.255.255.0 broadcast 192.11.12.255

ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.168.161.130 netmask 255.255.255.0 broadcast 192.168.243.255

$ ping 192.11.12.20

$ ping vmserver.com

reply

  1. Buat koneksi dari MobaXTerm ke VM-Client

--- Test LISTENER2 : Install SQL Developer di Client ---

  1. Check JVM

$ java -version

bash: java: command not found...

  1. Copy ke VM-Client di /home/admin

$ cd /home/admin

$ ls *.rpm

jdk-8u301-linux-x64.rpm sqldeveloper-21.2.1-204.1703.noarch.rpm

  1. Install JDK (Java Development Kit)

$ su -

cd /home/admin

rpm -Uhv jdk-8u301-linux-x64.rpm

java -version

java version "1.8.0_301"

Java(TM) SE Runtime Environment (build 1.8.0_301-b09)

Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)

exit

$ java -version

  1. Install SQL Developer

$ su -

cd /home/admin

rpm -Uhv sqldeveloper-21.2.1-204.1703.noarch.rpm

exit

  1. Jalankan SQL Developer

$ sqldeveloper &

Buat koneksi sebagai user :

Name : HR Connection

Username : hr

Password : Welcome1

Hostname : 192.11.12.20

Port : 1522

SID : prod

Name : System Connection

Username : system

Password : Welcome1

Hostname : vmserver.com

Port : 1521

SID : prod

Role : SYSDBA

--- Install Oracle Database Client 19c di VM Client ---

  1. Install prerequisite Oracle Database 19c

$ su -

dnf install oracle-database-preinstall-19c

passwd oracle

password : Welcome1

  1. Edit koneksi MobaXterm agar menggunakan user oracle

  2. Buat directory untuk kebutuhan Oracle Database Client

$ su -

mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1

chown -R oracle:oinstall /u01

chmod -R 755 /u01

exit

  1. Configure .bash_profile

$ pwd

/home/oracle

$ ls

$ ls -a

$ more .bash_profile

$ nano .bash_profile

.bash_profile

Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

User specific environment and startup programs

Oracle Settings

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_HOSTNAME=vmclient.com

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1

export ORA_INVENTORY=/u01/app/oraInventory

export ORACLE_SID=prod

export PATH=/usr/sbin:/usr/local/bin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

$ more .bash_profile

  1. Test Env. Variable

$ echo $ORACLE_HOSTNAME

vmclient.com

$ echo $ORACLE_HOME

/u01/app/oracle/product/19.0.0/dbhome_1

  1. Copy installer Oracle DB Client 19c => /home/oracle

LINUX.X64_193000_client.zip => /home/oracle

$ cd /home/oracle

$ ls

LINUX.X64_193000_client.zip

  1. Extract LINUX.X64_193000_client.zip

$ cd /home/oracle

$ unzip -oq LINUX.X64_193000_client.zip

$ ls -l

drwxr-xr-x 5 oracle oinstall 90 Apr 17 2019 client

-rw-r--r-- 1 oracle oinstall 1134912540 Jun 8 10:26 LINUX.X64_193000_client.zip

  1. Install Oracle Database Client 19c

$ cd /home/oracle/client

$ export CV_ASSUME_DISTID=OEL7.6

$ ./runInstaller

  1. Eksekusi Script, lakukan di vmclient

$ su -

/u01/app/oraInventory/orainstRoot.sh

/u01/app/oracle/product/19.0.0/dbhome_1/root.sh