Oracle云自治数据仓库抢鲜体验

张勇,北京海天起点公司数据库管理员,Oracle一体机用户组成员,获有OCP证书,具有多年金融行业oracle, mysql数据库日常维护,故障排除,性能优化、数据迁移、容灾备份等方面的运营维护经验;具有丰富的数据库设计和架构搭建经验,擅长数据统计和分析,熟悉NoSql产品;

自治数据仓库介绍

自治数据仓库是Oracle云目前最炙手可热的功能,它是一个构建在oracle数据库之上的云数据库,所有原先支持Oracle数据库的应用程序和工具同样也支持自治数据库。作为一种弹性的云服务,自治数据库表现为不需要去关心任何数据库管理方面的事宜,比如:硬件的配置和管理,软件的安装,以及数据库的创建,备份,升级、扩展和缩小等等。它被定义为一种”加载和运行”的服务,用户只关注运行自己的业务逻辑,而不需要去考虑有关并行度,分区,索引或压缩的细节,云服务都将自动配置好数据库以提供高性能查询。(听上去DBA要失业了,但我相信只是工作的侧重点不同了,以后DBA将更关注于业务逻辑,库表设计,数据生命同期管理等等)

下面是自治型数据仓库的体系结构图:


创建自治数据仓库

首先免费注册一个Oracle云账号,可以试用30天;

https://myservices.us.oraclecloud.com/mycloud/signup?language=en&sourceType=_ref_coc-asset-opcSignIn


已有账号的可以直接登录:https://cloud.oracle.com/zh_CN/sign-in

进来后,点击界面左上角的菜单图标,选择自治型数据库仓库:



在页面点击“Create Autonomous Data Warehouse”,弹出的对话框非常简单,按自己需要填写好数据库名称,CPU核数,存储大小;下边是Admin账户的密码配置,记住这个密码,后面要用这个账户来登录数据库。


最后点击“Create Autonomous Data Warehouse”

大约需要3~5分钟左右,就完成自治数据仓库的创建;相对于传统的环境搭建,不要方便太多。

连接自治数据仓库

应用程序和工具通过Oracle 网络服务(也就是SQL*Net)来连接自治数据仓库。这些Oracle 网络服务可以是Oracle 调用接口 (OCI)ODBC驱动,JDBC OCIJDBC Thin Driver 或者支持的第三方产品。

下面我们通过OCI进行连接:

  • 安装Oracle客户端,要求版本至少为12.2.0.1
  • 从云上自治数据仓库详情页下载Oracle客户端凭证;
  • 选择“Database Connection”,点击下载;


  • 在下载钱包对话框,输入钱包密码;
  • 最后点击下载,保存一个zip文件。
  • 配置TNS_ADMIN环境变量,设置值为zip文件解压后的目录(如:D:\Wallet_phm)
  • 编辑sqlnet.ora,替换 “?/network/admin”字符值为TNS_ADMIN的键值。
  • 通过sqlplus连接:


另一种更便捷的方法就是使用SQL Developer 18.3

在连接类型选择云钱包,配置文件选择下载的Oracle凭证包(都不用解压),填入账户信息就完成了。

迁移数据到自治数据仓库

介绍两种方法,分别是使用DBMS_CLOUD和数据泵工具。为了获得最快的数据加载体验,Oracle建议先将源文件上传到云然后再加载。

DBMS_CLOUD加载:

  • 首先准备一个要加载的文件,如:channels.txt,有着下面数据:


S,Direct Sales,Direct
T,Tele Sales,Direct
C,Catalog,Indirect
I,Internet,Indirect
P,Partners,Others

  • channels.txt文件上传到“Object Storage”

a.Object Storage界面上选择” Create Bucket”


b.在弹出的对话框,BUCKET NAME中填入自命的名称
(可理解成目录名),其它都保持默认选项,最后点击Create Bucket完成创建。

c.点击上一步创建的BUCKET名,选择页面下边的Upload Object,完成channels.txt文件上传。


  • 在数据库上创建凭证


这里解释下,因为文件此时保存在Object Storage上,是数据库外面,目前与数据库没半毛钱关系;所以这里的用户名(username)指的是登录Oracle云账户的用户名(不是数据库账号admin);而密码(password)是指用户的验证令牌(Auth Tokens)。下面来生成验证令牌:

点击左上角的菜单,找到Identity,选择User

接着,点击用户名进入用户详情页,在页面左下边选择Auth Tokens”,然后创建一个Auth Tokens;输入一个描述信息,点击Generate Token” 生成验证令牌。


这里的字符串就是密码。

  • 创建目标表,执行文件加载


执行过程中如果报:ORA-20000: Unsupported cloud store uri,表示file_uri_list配置不对,因为uri是一个固定格式(这设计真是没人性)

https://swiftobjectstorage.<region>.oraclecloud.com/v1/<tenant>/<bucket>/<filename>


如果报ORA-20401: Request failed with status 401,就是用户密码不对,要重新创建凭证。


数据加载完成。

数据泵工具加载

  • 把目标用户或表用数据泵先导出:

Expdp导出示例(导出用户zy)

  • 然后按上传channels.txt文件相同的方法上传到Object Storage


  • 使用数据泵执行导入;

如果数据泵版本低于12.2.0.1,需在自治数据仓库中为admin配置默认凭证:

DEF_CRED_NAME为前面创建的凭证名字。

Impdp导入:

dumpfile参数中文件位置格式与file_uri_list格式相同。

未经允许不得转载:Oracle一体机用户组 » Oracle云自治数据仓库抢鲜体验

相关推荐