資料庫管理-第122期 配置Halo資料庫(202301204)

yhw1809發表於2023-12-04

資料庫管理-第122期 配置Halo資料庫(202301204)

在120期完成了HaloDB的安裝,那麼緊接著就需要對資料庫進行具體配置。

1 資料庫配置

這裡首先說一下我這裡資料庫的給的硬體配置:2個CPU,16GB記憶體

1 配置資料庫訪問控制

vim $PGDATA/pg_hba.conf
新增
host all all 0/0 md5#控制網段可以配置192.168.19.0/0

2 配置歸檔日誌引數

mkdir $PGDATA/archivelog
vim $PGDATA/postgresql.conf
修改以下內容
archive_mode = on
archive_command = 'test ! -f /u01/app/halo/data/halo/archivelog/%f && cp %p /u01/app/halo/data/haloarchivelog/%f'restore_command = 'cp /u01/app/halo/data/halo/archivelog/%f %p'

3 其他配置

vim $PGDATA/postgresql.conf
修改以下內容
listen_addresses = '*'port = 1921
max_connections = 1000
work_mem = 16MB
wal_buffers = 16MB
checkpoint_completion_target = 0.9
max_wal_size = 8GB
min_wal_size = 2GB
default_statistics_target = 100
log_destination = 'csvlog'logging_collector = on
random_page_cost = 1.1
maintenance_io_concurrency = 200
wal_log_hints = on
shared_buffers = 4096MB #記憶體的25%-40%effective_cache_size = 8GB #記憶體的50%max_worker_processes = 2 #CPU數max_parallel_workers = 2 #CPU數

從上面資料庫配置來看,與PostgreSQL配置沒多少區別,完成後執行下面命令重啟資料庫即可:

pg_ctl restart

2 開啟Oracle模式

完成了第一節的配置後,資料庫算是執行在PG模式下,但是一款作為目標為替換Oracle資料庫的資料庫,還可以執行在Oracle模式下(也有MySQL模式,不詳解):

vim $PGDATA/postgresql.conf
修改以下內容
standard_parserengine_auxiliary = 'on'database_compat_mode = 'oracle'oracle.use_datetime_as_date = truetransform_null_equals = off#下面為MySQL模式#database_compat_mode = 'mysql'#second_listener_on = 1#second_port = 3306重啟資料庫
pg_ctl restart
create extension aux_oracle cascade;#採用Oracle模式情況下,新建庫都要建立擴充套件才能使用Oracle語法#MySQL模式#create extension aux_mysql;#set password_encryption='mysql_native_password';#CREATE USER mysqlroot SUPERUSER PASSWORD '123456';#採用MySQL模式情況下,MySQL的資料庫即schema,只需要在halo0root庫下建立schema就可以。

注:後續的所有操作都將在Oracle模式下執行

3 基礎測試

1 查詢database

SELECT * FROM pg_database;

d49a587f320e475e88157dcf301da0b0.png

這裡和PostgreSQL語法一致。

2 建立一個名為oracle的database

create database oracle;
\c oracle

這裡基本還是參照了PostgreSQL的語法。

3 按照Oracle語法嘗試建立一張表:

CREATE TABLE "EMPLOYEES"
   (    "EMPLOYEE_ID" NUMBER(6,0),        "FIRST_NAME" VARCHAR2(20),        "LAST_NAME" VARCHAR2(25)  NOT NULL,        "EMAIL" VARCHAR2(25)  NOT NULL,        "PHONE_NUMBER" VARCHAR2(20),        "HIRE_DATE" DATE NOT NULL,        "JOB_ID" VARCHAR2(10) NOT NULL,        "SALARY" NUMBER(8,2),        "COMMISSION_PCT" NUMBER(2,2),        "MANAGER_ID" NUMBER(6,0),        "DEPARTMENT_ID" NUMBER(4,0));

20231204-6f3cca1c-841c-4c0d-91da-52a9dc367724.png

表可以按照Oracle的語法直接建立,但是經過測試,直接在列上建立約束會有些報錯。

create table test (id number CONSTRAINT "test_null_con" NOT NULL ENABLE);

建表語句相容性上還是有一些需要注意的。

總結

本期完成了HaloDB的基本配置並進入了Oracle模式進行了一些簡單測試,相容性有但不完整,後面將造點資料測試其他SQL語句和效能對比測試。
老規矩,知道寫了些啥。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31466763/viewspace-2998622/,如需轉載,請註明出處,否則將追究法律責任。

相關文章