Baza: Oracle

Baza danych Oracle to zaawansowany system zarządzania relacyjnymi bazami danych, opracowany przez firmę Oracle Corporation. Jest powszechnie używany w przedsiębiorstwach i organizacjach na całym świecie ze względu na swoją niezawodność, wydajność i wszechstronność. Oracle oferuje pełne wsparcie dla standardów SQL, co ułatwia integrację z istniejącymi aplikacjami i narzędziami. Jego zaawansowane funkcje obejmują transakcyjność, zabezpieczenia, replikację danych, zarządzanie danymi w chmurze, oraz możliwość obsługi dużych ilości danych i zapytań równoległych. Dodatkowo, Oracle zapewnia szeroką gamę narzędzi administracyjnych i monitorowania, które ułatwiają zarządzanie bazą danych, w tym narzędzia do tworzenia kopii zapasowych, optymalizacji wydajności, zarządzania użytkownikami i kontrolowania dostępu. Dzięki swojej skalowalności i niezawodności, Oracle jest często wybierany do obsługi krytycznych aplikacji biznesowych, takich jak systemy zarządzania relacjami z klientami (CRM), systemy zarządzania zasobami przedsiębiorstwa (ERP) oraz systemy bankowości i finansów.

W niniejszym wpisie wykonamy instalację i konfigurację darmowej bazy danych oferowanej przez Oracle.

Założenia

Zakładam posiadanie podstawowej wiedzy o:
– docker
– cli
– client bazodanowy
– openssl

Akcja

Instalacja

1.Dodajemy do pliku /etc/hosts wpis kierujący nas do nowej domeny bazy danych.

1
127.0.0.1 oracle.e-strix.pl

2.Tworzymy strukturę katalogów wykorzystując docker compose

Instalacja

Uruchomienie lokalne

Przykładowy tekst

1
2
3
4
5
6
7
├── config
│ └── xe11
│     ├── Dockerfile
│     ├── init.sql
│     └── script.sh
├── docker-compose.yml
└── README.md

Struktura

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
zrodlo
https://hub.docker.com/r/oracleinanutshell/oracle-xe-11g

docker-compose  up --no-deps --build

zbuduj
docker-compose build

uruchom
docker-compose up

usun
docker-compose -f docker-compose.yml down

wejscie do kontenera
docker exec -it --user=oracle oracle11xe bash

README.md

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
version: '3.7'

services:
  oracle11xe:
    image: oracle11xe
    container_name: oracle11xe
    build: ./config/xe11
    ports:
      - 1521:1521
    networks:
      db_net:
        ipv4_address: 10.99.105.2

networks:
  db_net:
    ipam:
      driver: default
      config:
        - subnet: "10.99.105.0/24"

docker-compose.yml

1
2
3
4
5
6
FROM wnameless/oracle-xe-11g-r2

ADD init.sql /docker-entrypoint-initdb.d/
ADD script.sh /docker-entrypoint-initdb.d/

EXPOSE 1521

config/xe11/Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE USER USER_KAMIL IDENTIFIED BY USER_PASSWORD;
GRANT CONNECT, RESOURCE TO USER_KAMIL;
CREATE TABLESPACE TS_UTILS_DATA DATAFILE 'TS_UTILS_DATA.DBF' SIZE 120M AUTOEXTEND ON NEXT 20M MAXSIZE 2048M;
CREATE TABLESPACE TS_UTILS_IDX DATAFILE 'TS_UTILS_IDX.DBF' SIZE 20M AUTOEXTEND ON NEXT 20M MAXSIZE 2048M;
ALTER USER USER_KAMIL DEFAULT TABLESPACE TS_UTILS_DATA;
ALTER USER USER_KAMIL QUOTA UNLIMITED ON TS_UTILS_DATA;
ALTER USER USER_KAMIL QUOTA UNLIMITED ON TS_UTILS_IDX;

GRANT SELECT ON SYS.DBA_PENDING_TRANSACTIONS TO USER_KAMIL;
GRANT SELECT ON SYS.PENDING_TRANS$ TO USER_KAMIL;
GRANT SELECT ON SYS.DBA_2PC_PENDING TO USER_KAMIL;
GRANT EXECUTE ON SYS.DBMS_XA TO USER_KAMIL;
GRANT FORCE ANY TRANSACTION TO USER_KAMIL;

config/xe11/init.sql – Tworzenie użytkownika/schematu

1
 

config/xe11/script.sh

Mierzenie rozmiaru tabel

Poszczególne tabele
1
2
3
4
5
6
SELECT
   (BYTES)/1024/1024 as size_in_mega,
   segment_name
FROM
   user_segments
ORDER BY size_in_mega DESC;
Całość
1
2
3
4
SELECT
   SUM(BYTES)/1024/1024 as size_in_mega
FROM
   user_segments;

Plan zapytań

Eksport bazy

1
exp USER/password@//127.0.0.186:1521/XE FULL=y FILE=dump.dmp GRANTS=y ROWS=y

Import bazy

1
imp USER/password@//127.0.0.1:1521/XE FILE=dump.dmp
SELECT * FROM dba_users; SELECT * FROM all_users; select name from v$database; SELECT sys_context(’userenv’,’instance_name’) FROM dual; select username, account_status from DBA_USERS; cat setPassword.sh echo $ORACLE_PWD echo $ORACLE_SID grep $ORACLE_HOME /etc/oratab | cut -d: -f1 show con_name sqlplus sys@ORCLCDB as sysdba sqlplus sys@ORCLCDB as sysdba alter database mount; alter database open; show pdbs; alter pluggable database ORCLPDB1 open; alter session set container=ORCLPDB1;
SELECT * FROM dba_users;
SELECT * FROM all_users;
select name from v$database;
SELECT sys_context('userenv','instance_name') FROM dual;
select username, account_status
from DBA_USERS;
cat setPassword.sh
echo $ORACLE_PWD
echo $ORACLE_SID
grep $ORACLE_HOME /etc/oratab | cut -d: -f1
show con_name
sqlplus sys@ORCLCDB as sysdba
sqlplus sys@ORCLCDB as sysdba
alter database mount;
alter database open;
show pdbs;
alter pluggable database ORCLPDB1 open;
alter session set container=ORCLPDB1;
Tags :

Dodaj komentarz

Your email address will not be published. Required fields are marked *.

*
*
You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>