暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

红象数据库系统初始化介绍(Oracle兼容模式)

alitrack 2021-04-02
623
作者:王颖泽
从事国产数据库产品管理、内核研发工作多年
获得PostgreSQL社区MVP
 
上一篇我们介绍了红象数据库的Oracle兼容性(内核篇),本文将主要介绍如何进行红象数据库的ORACLE兼容模式的初始化及如何创建和使用用户,带领大家一步一步深入了解和使用红象数据库。
Ø 初始化参数
红象数据库在初始化中增加了-m <compatible mode>,即兼容性模式参数,具体值如下所示:
pg:表示在兼容PG模式下执行数据库初始化操作,此时初始化的执行过程与原生PG一致。
oracle:表示在兼容ORACLE模式下执行数据库初始化操作,此时的初始化过程除执行原生PG在初始化阶段的相关操作外,还将执行相应的操作以支持Oracle兼容模式,例如增加数据类型、内置函数、系统视图、系统包,创建PL/SQL语言等。
其中-m参数是可选项,如果不设置的情况下初始化操作默认是在PG兼容模式下执行。
例如:
 Initdb -D <datadir> -m pg
 Initdb -D <datadir> -m oracle
另外对于大小写增加了-c <case conversion mode>,具体值如下所示:
NORMAL:表示DB服务器禁用字符串大小写转换功能,与PG一致。
INTERCHANGE:表示DB服务器启用字符串大小写转换功能:加双引号的字符串全为大写则转换为小写,全为小写则转换为大写,大小 写混合则保持不变。
LOWERCASE:表示DB服务器启用字符串大小写转换功能:加双引号的字符串全为大写则转换为小写,全为小写或大小写混合则保持 不变。
该选项在PG模式下无效,-c参数是可选项,如果不设置的情况下默认的字符串转换模式为“INTERCHANGE”。
示例:
Initdb -D <datadir> -m oracle -c NORMAL
   Initdb -D \<datadir\> -m oracle -c INTERCHANGE
Initdb -D <datadir> -m oracle -c LOWERCASE
注意事项:在oracle模式下不建议使用NORMAL
Ø 用户管理
另外在兼容模式下提供了三类用户分别为:
实例级别系统用户:此类用户可以跨库使用。此类用户只有一个,只在执行初始化(initdb)操作时生成;拥有所有的权限;可以创建实例级别用户和库级用户。
实例级别用户:此类用户可以跨库使用。默认拥有连接、创建、删除所有DBSELECT所有DB对象的权限;除了可以创建数据库对象外,实例级别用户不能创建其他任何DB对象;只能由实例级别系统用户通过执行“create instance user with createdb” 语句创建,也可以通过执行“drop instance user”语句被删除。该用户用于复制、备份、监控等操作。
库级别用户:此类用户无法跨库使用。
此类用户又分为如下两类:
库级系统用户分为syssystem
1) 库级用户可由实例级别系统用户或者库级系统用户创建。
2) 每当创建一个DB时,被创建的DB中都要关联创建两个库级系统用户(syssystem),这两个用户分别与所属DB一一对应,密码默认与实例级系统用户一致。
3) 库级用户拥有对所属DB的所有DB级别对象操作的权限。
4) 用户名(syssystem)不能修改;它们随着DB的创建而创建,随着DB的删除而删除;除了不能创建和删除DB外,syssystem拥有所在DB上所有DB对象的所有权限。
5) 库级用户通过执行create user <db user name>”语句被创建,通过执行“drop user <db user name>”语句被删除;也可以通过删除DB时被关联删除。
关于用户密码,当初始化命令(initdb)中包含有“-W”选项时,表示在初始化操作中要使用交互方式为实例级别系统用户设置密码;如果认证方式为“MD5”和“PASSWORD”,则关联的为库级系统用户(syssystem)设置口令;口令与实例级别系统用户一致。
创建数据库 当前用户为“实例级别用户”的场景下执行创建数据库的SQL语句,如果语句中不设置密码,则“库级系统用户”(syssystem)的密码默认设置为"123456";如果设置了密码,则此密码被库级系统用户(syssystem)使用。
Ø 操作示例
1. 当前用户的环境变量配置文件.bashrc”中设置环境变量“LD_LIBRARY_PATH
2. 假设运行的数据库中首次创建的实例级别系统用户、实例级别用户、库级用户分别为:initdbuser”、“insuser”和“dbuser
3. 执行初始化命令
./initdb -D ../oradata -U initdbuser -m oracle
4. 启动数据库服务器
 ./postgres -D ../oradata -p 9876
5. 使用psql连接默认数据库“postgres”(假定使用实例级别系统用户“initdbuser”)
./psql -d postgres -U initdbuser -u -p 9876
6. 创建新的实例级别用户,当前用户为实例级别系统用户initdbuser
create instance user insuser with createdb;
7. 切换当前用户为新生成的实例级别用户insuser
\c - insuser - - inslevel
8. 创建新的库级用户(当前用户为实例级别系统用户initdbuser”)
create user dbuser;
9. 删除新创建的实例级别用户和库级用户
drop instance user insuser;
10. 删除库级用户
drop user dbuser;
到目前为止,本文档介绍了红象数据库在ORACLE兼容模式下初始化操作及用户管理功能,下一篇将详细介绍红象数据库系统参数相关内容。
红象数据库试用下载地址:
https://gitee.com/redelephant2020/packages/tree/master/red-pg
 

文章转载自alitrack,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论