zl程序教程

您现在的位置是:首页 >  其它

当前栏目

RAC 资源分配

RAC 资源分配
2023-09-14 09:01:48 时间

RAC下用户资源的分配:下面是实际生产环境下给准备上线的业务的分配资源。

 

 

(1)创建操作系统下面用来expdp导数据的目录,确保这个目录所在的磁盘有足够的空间。

[root@RAC1 ~]# mkdir -p  /archive/dumpdir/zc

[root@RAC1 ~]# chown -R oracle:oracle /archive/dumpdir/zc

chown: invalid group: `oracle:oracle'

 

 

(2)创建业务的服务,即对应业务的服务,业务通过这个服务连接到数据库上(主有一节点,备二节点,当一节点宕机服务飘到二节点)

[oracle@RAC1 ~]$ srvctl add service -d  oradb  -s zc_service  -r oradb1 -a oradb2 -P basic -m

basic -z 10 -e select

-d选项是db_name,-s是要添加的服务,-r是主服务所在的主节点instance_name,-s是服务所在的备节点instance_name。

[oracle@RAC1 ~]$ srvctl start service -d oradb -s zc_service

因为服务是主一备二,这个服务只在一节点不会在二节点,业务连接跑的业务也只在一节点,如果一节点宕机了,zc_service就会在二节点,业务也会切换到二节点。

[oracle@RAC1 ~]$  srvctl config service -d oradb  --RAC下面将服务是主备的方式列出来

Service name: zc_service

Service is enabled

Server pool: oradb_zc_service

Cardinality: 1

Disconnect: false

Service role: PRIMARY

Management policy: AUTOMATIC

DTP transaction: false

AQ HA notifications: false

Failover type: SELECT

Failover method: BASIC

TAF failover retries: 10

TAF failover delay: 0

Connection Load Balancing Goal: LONG

Runtime Load Balancing Goal: NONE

TAF policy specification: BASIC

Edition:

Preferred instances: oradb1  --可以看到服务是在一节点,只有一节点出现故障才会到二节点

Available instances: oradb2

 

 

如果一节点宕机了,后面服务都在二节点了,之后拉起一节点了,使用下面命令将服务切回到一节点。

[grid@RAC2 ~]$ srvctl relocate service -d oradb -s zc_service -i oradb2 -t oradb1 -- -i选项是服务所在备节点的instance_name,-t选项是主节点的instance_name。

 

 

(3)创建用户的表空间

 

SQL> create tablespace zc datafile '+DATA/oradb/datafile/zc01.dbf' size 50m autoextend off;

 

Tablespace created.

 

删除表空间,包括属于它的数据文件(物理上也同时删除)

SQL> drop tablespace qiu including contents and datafiles;

 

(4)创建数据库用户,记得分配一些权限

SQL> create user zc  identified by "zc" default tablespace zc quota unlimited on zc;

 

User created.

SQL> grant resource,create session,connect to zc;

 

Grant succeeded.

 

SQL> grant execute on DBMS_LOCK to zc;

 

Grant succeeded.

 

SQL> grant execute on DBMS_RANDOM to zc;

 

Grant succeeded.

 

SQL> grant execute on DBMS_JOB to zc;

 

Grant succeeded.

 

 

 

(5)给业务用户创建导入导出的目录,这个目录就是给业务登入上面分配的普通用户的家目录,这样业务就可以使用zc用户来导入导出数据。

SQL> create directory  zc_dir  as  '/archive/dumpdir/zc';

 

Directory created.

SQL> grant all on directory zc_dir to zc;

 

Grant succeeded.

 

测试是否可以导入导出数据

[root@RAC1 ~]# chown oracle:oinstall -R /archive/dumpdir/zc

[root@RAC1 ~]# su - oracle

[oracle@RAC1 ~]$ expdp zc/zc directory=zc_dir dumpfile=testmy.dmp tables=zc.test

 

Export: Release 11.2.0.4.0 - Production on Mon Oct 22 15:52:52 2018

 

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

 

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

Starting "ZC"."SYS_EXPORT_TABLE_01":  zc/******** directory=zc_dir dumpfile=testmy.dmp tables=zc.test

Estimate in progress using BLOCKS method...

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 64 KB

Processing object type TABLE_EXPORT/TABLE/TABLE

. . exported "ZC"."TEST"                                 5.015 KB       1 rows

Master table "ZC"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

******************************************************************************

Dump file set for ZC.SYS_EXPORT_TABLE_01 is:

  /archive/dumpdir/zc/testmy.dmp

Job "ZC"."SYS_EXPORT_TABLE_01" successfully completed at Mon Oct 22 15:53:11 2018 elapsed 0 00:00:17

 

 

最后别忘记给业务连接串了,服务是主一备二,使用failover机制,当一个节点宕机了,连到另外一个节点上的服务,下面写的顺序不要写错了。TNSNAME:

TNS =

  (DESCRIPTION_LIST =

     (LOAD_BALANCE = off)

     (FAILOVER = on)

        (DESCRIPTION =

           (ADDRESS_LIST =

              (LOAD_BALANCE=OFF)

              (FAILOVER=ON)

              (ADDRESS = (PROTOCOL = TCP)(HOST = 10.212.219.173)(PORT = 1521))

           )

           (CONNECT_DATA =

             (SERVICE_NAME = zc_service)

             (INSTANCE_NAME = oradb1)

             (FAILOVER_MODE=(TYPE=session)(METHOD=basic)(RETRIES=4)(DELAY=1))

           )

        )

        (DESCRIPTION =

           (ADDRESS_LIST =

              (LOAD_BALANCE=OFF)

              (FAILOVER=ON)

              (ADDRESS = (PROTOCOL = TCP)(HOST = 10.212.219.174)(PORT = 1521))

           )

           (CONNECT_DATA =

              (SERVICE_NAME = zc_service)

              (INSTANCE_NAME = oradb2)

              (FAILOVER_MODE=(TYPE=session)(METHOD=basic)(RETRIES=4)(DELAY=1))

           )

        )

  )

 

 

JDBC连接串:

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.212.219.173)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=10.212.219.174)(PORT=1521))(FAILOVER=on))(CONNECT_DATA=(SERVICE_NAME= zc_service)))