专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Oracle 12C Sharding安装

1、 安装前介绍

1、1 Oracle Sharding****架构介绍

l 管理节点:

这类节点的作用时管理MYSQLCluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等。一般应在启动其他节点之前首先启动该节点,对硬件要求较低。

l SQL节点:

这是用来访问cluster数据的节点。对于MYSQLCluster,客户端节点是使用NDBCluster存储引擎的传统mysql服务器。

对CPU要求较高,建议选择多核,高频CPU

l DB节点:

这类节点是用于保存cluster的数据。支持分布式存储。

内存需求量巨大。

备注:Cluster使用自动键值识别数据分片方案,用户无需关心数据切片方案,透明实现分布式数据库,数据分片规则根据主键、唯一索引、自动行标志rowid完成,根据集群个数进行分布,其访问数据犹如RAID访问机制,能并行从各个节点抽取数据,散列数据,当使用非主键或分区键访问时,将导致所有簇节点扫描,影响性能。

1、2 安装规划

集群软件版本:Mysql Cluster 7.6.7

操作系统版本:Redhat Linux 7.4

安装环境配置如下:

节点类型 主机描述 Oracle Home &GSM 监听 Database 附加
Shared目录节点 192.168.3.122host:testdb1 Oracle Home: /u01/app/oracle/12.2.0.1/db_1GSM home: /u01/app/oracle/12.2.0.1/GSM GSM Listener 1539DB Listener 1521 SCAT
Shared节点1 192.168.3.123host:testdb2 Oracle Home: /u01/app/oracle/12.2.0.1/db_1 DB Listener 1521 Sh1 Scheduler Agent
Shared节点2 192.168.3.124host:testdb3 Oracle Home: /u01/app/oracle/12.2.0.1/db_1 DB Listener 1521 Sh2 Scheduler Agent

2、 安装

2、1 Oracle12c 安装

备注:在三个节点均安装,完成预安装步骤,完成数据库软件安装

2、1.1 安装环境准备

(一)关闭防火墙及selinux

[root@testdb1 mnt]# systemctl stop firewalld

[root@testdb1 mnt]# systemctl disable firewalld

[root@testdb1 mnt]# vi /etc/selinux/config

SELINUX=disabled

(二)创建用户

[root@testdb1 mnt]# groupadd -g 1000 oinstall

[root@testdb1 mnt]# groupadd -g 1300 dba

[root@testdb1 mnt]# groupadd -g 1301 oper

[root@testdb1 mnt]# useradd -u 1101 -g oinstall -G dba,oper oracle

(三)创建安装目录

[root@testdb1 mnt]# mkdir -p /u01/app/oracle/

[root@testdb1 mnt]# mkdir -p /u01/app/oracle/

[root@testdb1 mnt]# chown -R oracle:oinstall /u01/app/oracle/

(四)内核资源与参数配置

[root@testdb1 mnt]# vi /etc/sysctl.conf

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 1987485696

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

kernel.panic_on_oops=1

(五)用户资源限制

[root@testdb1 mnt]# vi /etc/security/limits.conf

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft stack 10240

oracle hard stack 10240

(六)安装必备包

yum -y install bc

yum -y install binutils

yum -y install compat-libcap1

yum -y install compat-libstdc++.i686

yum -y install compat-libstdc++

yum -y install glibc.i686

yum -y install glibc

yum -y install glibc-devel.i686

yum -y install glibc-devel

yum -y install ksh

yum -y install gcc-c++

yum -y install libaio.i686

yum -y install libaio

yum -y install libaio-devel.i686

yum -y install libaio-devel

yum -y install libgcc.i686

yum -y install libgcc

yum -y install libstdc++.i686

yum -y install libstdc++

yum -y install libstdc++-devel.i686

yum -y install libstdc++-devel

yum -y install libxcb.i686

yum -y install libxcb

yum -y install libX11.i686

yum -y install libX11

yum -y install libXau.i686

yum -y install libXau

yum -y install libXi.i686

yum -y install libXi

yum -y install libXtst.i686

yum -y install libXtst

yum -y install make

yum -y install net-tools

yum -y install nfs-utils

yum -y install smartmontools

yum -y install sysstat

2、1.2 数据库安装

![img][]

![img][]

![img][]

![img][]

![img][]

![img][]

![img][]

![img][]

![img][]

![img][]

2、2 创建Shared目录数据库(192.168.3.122)

![img][]

![img][]

![img][]

![img][]

![img][]

![img][]

![img][]

![img][]

![img][]

![img][]

![img][]

![img][]

![img][]

![img][]

密码:123456789

![img][]

![img][]

2、3 安装GSM(192.168.3.122)

![img][]

![img][]

![img][]

2、4 建立Oracle共享管理和路由层

(一) 共享目录数据库参数设置

alter system set db_create_file_dest=’/u01/app/oracle/oradata/’ scope=spfile;

alter system set open_links=16 scope=spfile;

alter system set open_links_per_instance=16 scope=spfile;

shut immediate;

startup;

(二) 创建用户并授权

set echo on

set termout on

spool setup_grants_privs.lst

alter user gsmcatuser account unlock;

alter user gsmcatuser identified by gsmcatuser;

create user mysdbadmin identified by mysdbadmin;

grant connect, create session, gsmadmin_role to mysdbadmin;

grant inherit privileges on user SYS to GSMADMIN_INTERNAL;

spool off

(三) 创建共享目录和配置代理

[oracle@testdb1 ~]$ vi gsm_profile

export ORACLE_BASE=/u01/app/gsm/

export ORACLE_HOME=/u01/app/gsm/product/12.2.0/gsmhome_1

export PATH

export PATH=91113_1.pngPATH

[oracle@testdb1 ~]$ source gsm_profile

[oracle@testdb1 ~]$ gdsctl

GDSCTL> create shardcatalog -database 192.168.3.122:1521:scat -chunks 12 -user mysdbadmin/mysdbadmin -sdb scat -region region2 -agent_port 8080 -agent_password oracle

GDSCTL>add gsm -gsm sharddirector1 -listener 1571 -pwd gsmcatuser -catalog 192.168.3.122:1521:scat -region region2

GDSCTL>start gsm -gsm sharddirector1

GDSCTL> add credential -credential oracle_cred -osaccount oracle -ospassword oracle

(四) 开启代理并注册共享节点(两个节点均开启)

[oracle@testdb2 ~]$ schagent -start

Scheduler agent started using port 22389

[oracle@testdb2 ~]$ schagent status

Agent running with PID 14756

Agent_version:12.2.0.1.2

Running_time:00:01:27

Total_jobs_run:0

Running_jobs:0

Platform:Linux

ORACLE_HOME:/u01/app/oracle/product/12.2.0/dbhome_1

ORACLE_BASE:null

Port:22389

Host:testdb2

[oracle@testdb2 ~]$ echo oracle | schagent -registerdatabase testdb1 8080

Agent Registration Password ?

Oracle Scheduler Agent Registration for 12.2.0.1.2 Agent

[oracle@testdb2 ~]$ mkdir -p /u01/app/oracle/oradata/

[oracle@testdb2 ~]$ mkdir -p /u01/app/oracle/fast_recovery_area

[oracle@testdb2 ~]$ mkdir -p /u01/app/oracle/admin/scat/dpdump/

2、5 创建系统管理的SDB

2、5.1 部署

(一)验证数据库环境

SQL> set serveroutput on

SQL> execute DBMS_GSM_FIX.validateShard

![img][]

备注:修复warning和ERROR信息

SQL> alter database force logging;

SQL> alter system set db_recovery_file_dest=’/u01/app/oracle/fast_recovery_area’ scope=spfile;

SQL> alter user GSMUSER identified by gsmuser account unlock;

(二)连接GSM,创建目录组

GDSCTL>set gsm -gsm SHARDDIRECTOR1

GDSCTL>connect mysdbadmin/mysdbadmin

Catalog connection is established

GDSCTL>add shardgroup -shardgroup primary_shardgroup -deploy_as primary -region region2;

(三)添加节点

添加testdb2

GDSCTL>add invitednode testdb2

GDSCTL>create shard -shardgroup primary_shardgroup -destination testdb2 -credential oracle_cred -sys_password 123456789

The operation completed successfully

DB Unique Name: sh1

添加testdb3

GDSCTL>add invitednode testdb3

GDSCTL>create shard -shardgroup primary_shardgroup -destination testdb3 -credential oracle_cred -sys_password 123456789

The operation completed successfully

DB Unique Name: sh21

GDSCTL>config

![img][]

(五) 部署

GDSCTL>deploy

![img][]

(六) 验证shared状态

GDSCTL>config shard

![img][]

GDSCTL>databases

![img][]

2、5.2 创建服务

(一)创建服务

GDSCTL>add service -service shared_tpcds -role primary

GDSCTL>config service

Name Network name Pool Started Preferred all


shared_tpcds shared_tpcds.scat.oradbcloud scat No Yes

(二)启动服务

GDSCTL>start service -service shared_tpcds

The operation completed successfully

GDSCTL>status service

Service “shared_tpcds.scat.oradbcloud” has 2 instance(s). Affinity: ANYWHERE

Instance “scat%1”, name: “sh1”, db: “sh1”, region: “region2”, status: ready.

Instance “scat%11”, name: “sh21”, db: “sh21”, region: “region2”, status: ready.

2、5.2 创建****schema

登录testdb1

(一)创建用户

[oracle@testdb1 ~]$ sqlplus / as sysdba

SQL> alter session enable shard ddl;

SQL> create user app_schema identified by oracle;

SQL> grant all privileges to app_schema;

SQL> grant gsmadmin_role to app_schema;

SQL> grant select_catalog_role to app_schema;

SQL> grant connect, resource to app_schema;

SQL> grant dba to app_schema;

SQL> grant execute on dbms_crypto to app_schema;

(二)创建表空间

SQL> CREATE TABLESPACE SET TSP_SET_1 using template (datafile size 100m autoextend on next 10M maxsize unlimited extent management local segment space management auto);

SQL> CREATE TABLESPACE products_tsp datafile size 100m autoextend on next 10M maxsize unlimited extent management local uniform size 1m;

(三)创建表

[oracle@testdb1 ~]$ sqlplus app_schema/oracle

SQL> ALTER SESSION ENABLE SHARD DDL;

SQL> CREATE SHARDED TABLE Customers

2 (

3 CustId VARCHAR2(60) NOT NULL,

4 FirstName VARCHAR2(60),

5 LastName VARCHAR2(60),

6 Class VARCHAR2(10),

7 Geo VARCHAR2(8),

8 CustProfile VARCHAR2(4000),

9 Passwd RAW(60),

10 CONSTRAINT pk_customers PRIMARY KEY (CustId),

11 CONSTRAINT json_customers CHECK (CustProfile IS JSON)

12 ) TABLESPACE SET TSP_SET_1

13 PARTITION BY CONSISTENT HASH (CustId) PARTITIONS AUTO;

SQL> CREATE SHARDED TABLE Orders

2 (

3 OrderId INTEGER NOT NULL,

4 CustId VARCHAR2(60) NOT NULL,

5 OrderDate TIMESTAMP NOT NULL,

6 SumTotal NUMBER(19,4),

7 Status CHAR(4),

8 CONSTRAINT pk_orders PRIMARY KEY (CustId, OrderId),

9 CONSTRAINT fk_orders_parent FOREIGN KEY (CustId)

10 REFERENCES Customers ON DELETE CASCADE

11 ) PARTITION BY REFERENCE (fk_orders_parent);

SQL> CREATE SEQUENCE Orders_Seq;

SQL> CREATE SHARDED TABLE LineItems

2 (

3 OrderId INTEGER NOT NULL,

4 CustId VARCHAR2(60) NOT NULL,

5 ProductId INTEGER NOT NULL,

6 Price NUMBER(19,4),

7 Qty NUMBER,

8 CONSTRAINT pk_items PRIMARY KEY (CustId, OrderId, ProductId),

9 CONSTRAINT fk_items_parent FOREIGN KEY (CustId, OrderId)

10 REFERENCES Orders ON DELETE CASCADE

11 ) PARTITION BY REFERENCE (fk_items_parent);

SQL> CREATE DUPLICATED TABLE Products

2 (

3 ProductId INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,

4 Name VARCHAR2(128),

5 DescrUri VARCHAR2(128),

6 LastPrice NUMBER(19,4)

7 ) TABLESPACE products_tsp;

(四)验证表分片

验证表空间

登录:testdb2

SQL> select TABLESPACE_NAME, BYTES/1024/1024 MB from sys.dba_data_files order by tablespace_name;

TABLESPACE_NAME MB


C001TSP_SET_1 100

C002TSP_SET_1 100

C003TSP_SET_1 100

C004TSP_SET_1 100

C005TSP_SET_1 100

C006TSP_SET_1 100

PRODUCTS_TSP 100

SYSAUX 470

SYSTEM 800

TSP_SET_1 100

UNDOTBS1 70

TABLESPACE_NAME MB


USERS 5

SQL> set linesize 140

SQL> column table_name format a20

SQL> column tablespace_name format a20

SQL> column partition_name format a20

SQL> show parameter db_unique_name

NAME TYPE VALUE


db_unique_name string sh1

SQL> select table_name, partition_name, tablespace_name from dba_tab_partitions where tablespace_name like ‘C%TSP_SET_1’ order by tablespace_name;

TABLE_NAME PARTITION_NAME TABLESPACE_NAME


ORDERS CUSTOMERS_P1 C001TSP_SET_1

CUSTOMERS CUSTOMERS_P1 C001TSP_SET_1

LINEITEMS CUSTOMERS_P1 C001TSP_SET_1

CUSTOMERS CUSTOMERS_P2 C002TSP_SET_1

LINEITEMS CUSTOMERS_P2 C002TSP_SET_1

ORDERS CUSTOMERS_P2 C002TSP_SET_1

CUSTOMERS CUSTOMERS_P3 C003TSP_SET_1

ORDERS CUSTOMERS_P3 C003TSP_SET_1

LINEITEMS CUSTOMERS_P3 C003TSP_SET_1

ORDERS CUSTOMERS_P4 C004TSP_SET_1

CUSTOMERS CUSTOMERS_P4 C004TSP_SET_1

TABLE_NAME PARTITION_NAME TABLESPACE_NAME


LINEITEMS CUSTOMERS_P4 C004TSP_SET_1

CUSTOMERS CUSTOMERS_P5 C005TSP_SET_1

LINEITEMS CUSTOMERS_P5 C005TSP_SET_1

ORDERS CUSTOMERS_P5 C005TSP_SET_1

CUSTOMERS CUSTOMERS_P6 C006TSP_SET_1

LINEITEMS CUSTOMERS_P6 C006TSP_SET_1

ORDERS CUSTOMERS_P6 C006TSP_SET_1

[img]:
文章永久链接:https://tech.souyunku.com/29688

未经允许不得转载:搜云库技术团队 » Oracle 12C Sharding安装

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们