Oracle Know-how¶
EPEL¶
Extra Packages for Enterprise Linux (EPEL) ist eine Special Interest Group von Fedora, die eine qualitativ hochwertige Reihe von zusätzlichen Paketen für Enterprise Linux verwaltet. EPEL eignet sich für alle RHEL Distributionen: Red Hat Enterprise Linux, CentOS und Scientific Linux(SL), Oracle Linux (OL).
EPEL-Pakete basieren in der Regel auf ihren Fedora-Pendants konfligieren aber nicht mit den Paketen in den Basis-Enterprise Linux-Distributionen (es werden auch keine ersetzt).:
sudo -H yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo -H yum update
$ sudo -H yum repolist
Geladene Plugins: langpacks, ulninfo
Repo-ID Repo-Name: Status
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13.415
ol7_UEKR5/x86_64 Latest Unbreakable Enterprise Kernel Release 5 for Oracle Linux 169
ol7_latest/x86_64 Oracle Linux 7Server Latest (x86_64) 15.441
repolist: 29.025
Schema anlegen (CREATE USER
)¶
Bei einer CDB muss das Präfix c##
im Namen des DB-Users (des Schemas)
verwendet werden, bei einer PDB ist das nicht erforderlich. Die CDBs sind seit
Oracle 12 in einer Standard Installation (CDB & PDB). Im folgenden
Beispiel wird ein DB-Benutzer (ein Schema) mit dem Namen foo
und mit
Passwort bar
eingerichtet (Anmeldung als sysdba).
CREATE USER c##foo IDENTIFIED BY bar
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users
CONTAINER = ALL
PROFILE default;
Gewähren von Rechten auf dem Schema c##foo
.
GRANT CONNECT
, CREATE TABLE, CREATE VIEW, CREATE SEQUENCE
, CREATE SYNONYM, CREATE CLUSTER, CREATE DATABASE LINK
, ALTER SESSION, CREATE TRIGGER, CREATE PROCEDURE
TO c##foo;
Anlegen eines Schemas in einer PDB:
ALTER SESSION SET container=ORCLPDB;
CREATE USER foo IDENTIFIED BY bar
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users
PROFILE default;
GRANT CONNECT
, CREATE TABLE, CREATE VIEW, CREATE SEQUENCE
, CREATE SYNONYM, CREATE CLUSTER, CREATE DATABASE LINK
, ALTER SESSION, CREATE TRIGGER, CREATE PROCEDURE
TO foo;
GRANT read, write
ON DIRECTORY oracle_impexp
TO foo;
Schema löschen¶
DROP USER c##foo CASCADE;
Löschen eines Schemas in einer PDB:
ALTER SESSION SET container=ORCLPDB;
DROP USER foo CASCADE;
Aus welcher Oracle Version wurde der DUMP erzeugt?¶
$ strings my_dump_file.dmp | head -n 5
"SYS"."SYS_EXPORT_SCHEMA_01"
IBMPC/WIN_NT64-9.1.0
...
AL32UTF8
11.02.00.00.00
Welches Schema ist im DUMP?¶
Es gibt keine direkte Lösung, aber der sysdba kann sich das Schema im DUMP mit der Option SHOW in eine SQL Datei ausgeben lassen:
impdp \"/ as sysdba\" \
directory = DATA_PUMP_DIR \
dumpfile = my_dump_file.dmp \
sqlfile = my_dump_file.sql
Im DATA_PUMP_DIR
liegt dann die my_dump_file.sql
in der man die CREATE
USER Anweisungen findet:
$ grep '^\s*CREATE USER' /opt/oracle/admin/ORCLCDB/dpdump/my_dump_file.sql
CREATE USER "TEST_USER" IDENTIFIED BY VALUES ...
Statistiken und Optimierung¶
Die Optimizer-Statistiken sind eine Sammlung von Daten, die weitere Details bzw. Informationen über die Datenbank und die Objekte der Datenbank beschreiben. Damit der Cost-Based-Optimizer (CBO) den effizientesten Ausführungsplan von einer SQL-Abfrage berechnen und auswählen kann, müssen Informationen über die Tabelle und Indizes, die in der SQL-Abfrage beteiligt sind, vorhanden sein. Der Rule-Based-Optimizer (RBO) verwendet dagegen keine Statistiken. [ref]
Die Neuberechnung der Statistiken kann U.A. Abhilfe bei Performanceproblemen bieten. Für das gesamte Benutzerschema kann sie wie folgt in sqlplus über eine Prozedur (GATHER_SCHEMA_STATS) angestoßen werden:
exec DBMS_STATS.GATHER_SCHEMA_STATS(
ownname => NULL
, no_invalidate => FALSE
);