暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

数据库管理-第122期 配置Halo数据库

冷狼 2024-01-27
134

数据库管理-第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 = true transform_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模式下执行
image.png

3 基础测试

1 查询database

SELECT * FROM pg_database;

image.png
这里和PostgreSQL语法一致。

2 创建一个名为oracle的database

create database oracle; \c oracle

image.png
image.png
这里基本还是参照了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));

image.png
表可以按照Oracle的语法直接创建,但是经过测试,直接在列上创建约束会有些报错。

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

image.png
建表语句兼容性上还是有一些需要注意的。

总结

本期完成了HaloDB的基本配置并进入了Oracle模式进行了一些简单测试,兼容性有但不完整,后面将造点数据测试其他SQL语句和性能对比测试。
老规矩,知道写了些啥。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论