史上最详细的mysql和oracle迁移到xugu(虚谷数据库)的迁移对象注意事项

     国产化的趋势下,随着数字经济的不断发展,数据库作为信息系统的核心基础软件,其重要性愈发凸显。然而,长期以来,国内市场上的数据库产品主要以国外品牌为主,如Oracle、MySQL、IBM DB2等,这些产品在国内市场占据主导地位。然而,这也带来了供应链风险、信息安全隐患等问题,一旦出现供应链中断或信息泄露,可能对企业运营和国家安全造成严重影响。在此背景下虚谷(xugu)就是一个很好的核心基础软件。

    但是数据库替换过程中,开发人员已习惯原有的oracle或mysql的一套体系和架构,对于国产化数据库还较为陌生,下面我对mysql迁移至xugu和oracle迁移至xugu理解注意事项。   

   有关xugu、oracle、mysql数据库中对database->schema->user->对象(table、index等)这些的介绍。

一、关系介绍
1.mysql

User(用户) :
      访问MySQL服务器的实体,每个用户都有与之关联的权限,这些权限定义了用户可以在哪些schema/database上执行哪些操作。

Schema/Database(架构/数据库) :
       存储数据库对象的逻辑容器。每个数据库都是独立的,包含自己的表、视图、索引等对象。在MySQL中,schema和database通常可以互换使用,指的是同一个概念

对象:
     Table(表) 是数据库中用于存储数据的基本结构,它由行(记录)和列(字段)组成。
      Index(索引) 是为了提高查询性能而创建的数据结构,它附加在表的列上,帮助数据库系统更快地检索数据。
      View(视图) 是一个虚拟的表,其内容由查询定义。视图不存储数据,它只是保存了用于检索数据的SQL语句。
      Procedure(存储过程)、Function(函数) 和 Trigger(触发器) 是存储在数据库中的程序,用于执行特定的操作或响应特定的事件。

层次关系:

User  
      |  
      |-- Schema/Database  
      |       |  
      |       |-- Table  
      |       |    |  
      |       |    |-- Index  
      |       |    |-- Column  
      |       |    |-- ... (其他数据库对象,如触发器、存储过程等)  
      |       |  
      |       |-- View  
      |       |-- Procedure  
      |       |-- Function  
      |       |-- Trigger  
      |       |-- Event  
      |       |-- ... (其他数据库对象)  
      |  
      |-- Another Schema/Database  
      |       |  
      |       |-- ... (另一个数据库的对象)  
      |  
      |-- ... (其他用户)
2.oracle

database(架构/数据库):
       Oracle数据库是一个物理和逻辑存储结构的集合,用于存储、管理和检索数据,包括数据和元数据,如用户、表空间、数据文件和系统元数据等。

User/Schema(用户和模式):
       在Oracle中,每个用户通常与一个schema相关联。User和Schema之间是一对一的关系。用户是通过用户名和密码来访问数据库的主体。Schema是用户私有的逻辑命名空间,用于组织和管理该用户的数据库对象。当用户在数据库中创建表、视图、索引等对象时,这些对象会被存储在用户的schema中。

对象:
      数据库对象是存储在数据库中的实体,如表、视图、索引、存储过程等。这些对象属于特定的Schema,并由用户在其Schema中创建和管理。

层次关系:

database  
      |  
      |-- User/Schema
      |       |  
      |       |-- Table  
      |       |    |  
      |       |    |-- Index  
      |       |    |-- Column  
      |       |    |-- ... (其他数据库对象,如触发器、存储过程等)  
      |       |  
      |       |-- View  
      |       |-- Procedure  
      |       |-- Function  
      |       |-- Trigger  
      |       |-- Event  
      |       |-- ... (其他数据库对象)  
      |  
      |-- Another User/Schema  
      |       |  
      |       |-- ... (另一个用户下的对象)  
      |  
      |-- ... (12c以上cdb,另一个pdb)
3.xugu

database(架构/数据库):
    
   (1)xugu数据库是逻辑存储结构的集合,database分为系统库(system database)和业务库(professional database),系统存储这个整个数据库进程sys_全局信息,管理所有业务库。
       (2)每个database都有自己独立的一套数据如用户(sysdba、user等)和系统元数据等,且库与库之间相互隔离,不允许跨库访问对象

User/Schema(用户和模式):
   
    在xugu中,默认每个user有自己同名的schema相关联,一个user可以有多个schema。用户是通过用户名和密码来访问数据库的主体。Schema是用户私有的逻辑命名空间,用于组织和管理该用户的数据库对象。当用户在数据库中创建表、视图、索引等对象时,这些对象会被存储在用户的schema中。

对象:
      
数据库对象是存储在数据库中的实体,如表、视图、索引、存储过程等。这些对象属于特定的Schema,并由用户在其Schema中创建和管理。

层次关系:

system database
      | 
      |--User/Schema 
	  |
professional database  
      |  
      |-- User/Schema
      |       |  
      |       |-- Table  
      |       |    |  
      |       |    |-- Index  
      |       |    |-- Column  
      |       |    |-- ... (其他数据库对象,如触发器、存储过程等)  
      |       |  
      |       |-- View  
      |       |-- Procedure  
      |       |-- Function  
      |       |-- Trigger  
      |       |-- Event  
      |       |-- ... (其他数据库对象)  
      |  
      |-- Another User/Schema  
      |       |  
      |       |-- ... (另一个user的schema下的对象)  
      |  
      |-- ... (其他的业务数据库--Another professional database)
二、迁移注意事项

xugu数据库的用户和对象关系:

1.mysql to xugu

上述有关database、schema、对象的结构区别,mysql迁移到xugu数据库:
    (1)mysql中database/schema对应的xugu的professional database下user/schema
    (2)迁移前在xugu端创建于源端mysql字符集相同的数据库,然后为每个mysql端的                database/schema在xugu端创建一个同名的user,操作案例:

源端mysql 目标端xugu xugu sql案例
database/schema user/schema

1、在系统库下创建对应字符集数据库

create database mysqldb char set 'utf8';

2、切换到业务库

use mysqldb;

3、xugu端业务库下创建于mysql端对应的schema的用户

create user mysql_db_sch identified by password;

grant  dba to mysql_db_sch;

4、用迁移工具将mysql下对应的db迁移到对应的user下

2.oracle to xugu

oracle迁移到xugu,源端oracle的每个user对应xugu的professional database下的user就可以。

源端oracle 目标端xugu xugu sql案例
user/schema user/schema

1、在系统库下创建对应字符集数据库

create database oracledb char set 'gbk';

2、切换到业务库

use oracledb;

3、xugu端的业务库下创建与oracle对应的user

create user oracle_user identified by password;

grant dba to oracle_user;

4、使用迁移工具将oracle每个user迁移到xugu业务库下每个user即可;

猜你喜欢

转载自blog.csdn.net/m0_50013822/article/details/138268763