Oracle 12c + Pl/Sql windows系统下表空间创建、迁移,dmp备份导入,数据库字符集更改

一、开发环境

操作系统:win11
Oracle版本:12c
Oracle 数据库字符集:AL32UTF8
Pl/Sql版本:14

二、表空间创建

表空间是 Oracle 数据库中一种重要的逻辑结构,它是数据库中数据文件的逻辑集合,用于存储数据库对象,如数据表、索引等。表空间与数据文件紧密相关,dbf数据文件是实际存储数据的物理文件,一个表空间可以包含一个或多个dbf数据文件 。

1.查看表空间对应的文件路径,在Pl/Sql中输入下述命令:

SELECT file_name,tablespace_name,bytes/1024/1024 AS size_mb
FROM dba_data_files

在这里插入图片描述
可以看到咱电脑有这么些默认的表空间,知道了这些默认表空间的存储路径,我们就可以根据他们的路径来新建表空间了。

2.创建表空间

CREATE bigfile 
TABLESPACE users03DATAFILE '你的表空间文件存储路径\数据文件名字可以DIY.DBF'SIZE 40G  -- 初始分配AUTOEXTEND ONNEXT 2G   -- 每次扩展2GBMAXSIZE UNLIMITED;   -- 最大限制

在这里插入图片描述

空间分配逻辑,例如我们现在有20GB的DMP备份文件,70GB可用磁盘空间:

  • DMP解压空间: 20GB × 2 = 40GB 压缩数据解压膨胀系数
  • 总计分配: 20GB x 2.5 = 50GB 最大限制值
  • 保留空间: 20GB 系统运行必需空间

当然我上边的代码里没有设置最大限制值,因为我这边的存储硬件资源比较宽裕,大家可以参考一下这个空间分配逻辑。

3.创建公共用户

CREATE USER c##shuaige777   --用户名
IDENTIFIED BY shuaige777   -- 用户密码
DEFAULT TABLESPACE  USERS03   --表空间名称
TEMPORARY TABLESPACE temp;--授权
GRANT DBA TO c##shuaige777;

为什么要在用户名前加 c##

  • Oracle 12c 及以上版本使用多租户架构(CDB 包含多个 PDB)。
  • 在根容器 (CDB$ROOT) 中创建用户时,用户名必须以 C## 或 c## 开头(公共用户)。
  • 如果未使用 C## 前缀,或未切换到 PDB 容器执行命令,会触发此错误。

三、导入DMP备份数据

1.登入Sql/Plus
打开Sql*Plus,输入下述命令,提示输入密码按回车键即可。

sqlplus / as sysdba

2.创建目录对象并授权

# 创
CREATE DIRECTORY dump_dir AS 'F:\OracleDumpDir';
# 授
GRANT READ, WRITE ON DIRECTORY dump_dir TO taibao666;

这是在Sql/Plus创建数据库目录对象,指向服务器文件系统路径;也要在本地这个路径下创建一个文件夹。

注意事项:Sql/Plus中创建的目录对象名称、路径和本地创建的文件名称、路径要一致;目录对象一旦创建,不能直接修改名称,只能删除再重新创建。

3.导入DMP备份数据文件

导入dmp是不能在Sql/Plus环境下导的,只能在cmd环境下导,所以以下的命令都是要在cmd环境中输入。

impdp username/password DIRECTORY=dump_dir DUMPFILE=export.dmp LOGFILE=import.log remap_schema=old:new remap_tablespace=old:new

参数解析

  • username/password:就是上边我们创建的用户和密码c##shuaige777/shuaige777
  • DIRECTORY=dump_dir:就是我们创建的目录对象dump_dir
  • DUMPFILE=export.dmp:就是我们的dmp备份数据文件名称
  • LOGFILE=import.log:就是导入日志,你导入会有报错或者成功的信息,就会存到这文件里边
  • remap_schema=old:new:就是你导出的源数据库的用户名称和我们现在被导入的用户名称
  • remap_tablespace=old:new:就是你导出的源数据库的表空间名称和被导入的表空间名称

了解导入参数的含义后,我们可以自定义SQL导入代码:

impdp c##shuaige777/shuaige777 DIRECTORY=dump_dir DUMPFILE=BH_01.DMP,BH_02.DMP,BH_03.DMP,BH_04.DMP,BH_05.DMP,BH_06.DMP LOGFILE=BH_import.log JOB_NAME=BH_IMPORT_JOB remap_schema=c##shuiage666:c##shuaige777 remap_tablespace=KFCV50:USERS03

四、表空间数据文件迁移

假如你的表空间USERS03现在由于业务量越来越大,原来存放的存储空间开始不够用,准备爆了,领导叫你马上找办法解决,在找不到其它办法解决的情况下,将表空间迁移至拥有更大的地方是最好的选择。

1.进入我们的Sql/Plus

sqlplus / as sysdba

2.关闭数据库

shutdown immediate;

3.进入mount模式,因为迁移数据文件只能在mount模式下进行

startup mount;

4.修改dbf文件存放的路径

alter database rename file 'D:\ORCALE12C\ORADATA\ORCL\USERS03.DBF' to 'F:\OracleDbfDir\USERS03.DBF';

5.恢复介质

recover datafile 'F:\OracleDbfDir\USERS03.DBF';

6.打开数据库

alter database open;

7.删除原路径下文件

HOST del "D:\ORCALE12C\ORADATA\ORCL\USERS03.DBF"

五、数据库字符集更改

在导入DMP备份文件时,若源数据库与目标数据库字符集不一致,可能导致导入失败。这时候我们就得修改我们的数据库字符集与源数据库一致,才能导进来,Oracle的字符集格式最常用的就俩个:AL32UTF8、ZHS16GBK。

注:不建议修改自己的数据库的字符集,最好是导出的时候对数据进行字符集的格式设定,贸然在生产环境修改数据库的字符集会导致数据丢失,到时候只能跑路了,救不了。

Oracle的默认字符一般为:AL32UTF8,除非你在Oracle安装时另外选了。

在这里插入图片描述
1.进入Sql/Plus,关闭数据库

SHUTDOWN IMMEDIATE;

2.以限制模式启动数据库

STARTUP RESTRICT;

3.更改字符集

ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;

4.重启数据库

SHUTDOWN IMMEDIATE;STARTUP;

5.验证更改

SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER LIKE '%CHARACTERSET';

六、总结

这篇文章主要介绍Oracle数据库的基础操作和配置方法,希望能为大家提供实用的学习参考,给大伙敬酒了。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/918134.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/918134.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GUI:QT简介

一、什么是QT?Qt是一套跨平台的 C 图形用户界面(GUI)应用程序开发框架,由挪威 Trolltech(奇趣科技)于 1991 年创建,2008 年被诺基亚收购,2012 年后由 Qt Company 负责维护。它广泛应…

oceanbase执行execute immediate create table提示无权限

问题:OB库4.2.5.4版本,执行到这一句的时候,报没有权限:[rootlnob ~]# obclient -h192.168.207.28 -P2881 -ugistarlnzyob -pxxxxxx -A Welcome to the OceanBase. Commands end with ; or \g. Your OceanBase connection id is 3…

滴滴招java开发

滴滴集团 北京(岗位信息已经过jobleap.cn授权,可在csdn发布)收录时间: 2025年08月01日职位描述 负责滴滴海外业务准入审核及反作弊相关系统的后端开发及系统维护; 职位要求 1、统招本科及以上学历,计算机科…

深入解析基于Zookeeper分布式锁在高并发场景下的性能优化实践指南

深入解析基于Zookeeper分布式锁在高并发场景下的性能优化实践指南 在大规模分布式系统中,如何保证多个节点对同一资源的有序访问,是提高系统稳定性与一致性的核心需求之一。Zookeeper 提供的分布式锁机制,以其简洁的原理和高可靠性&#xff0…

腾讯云CodeBuddy AI IDE+CloudBase AI ToolKit打造理财小助手网页

CodeBuddy 腾讯云CodeBuddy AI IDECloudBase AI ToolKit打造理财小助手网页 在线体验地址:理财小助手 在线仓库:https://cnb.cool/pickstars-2025/ai-financial-assistant 🌟 Hello,我是摘星! 🌈 在彩虹般…

2025-08-08 李沐深度学习11——深度学习计算

文章目录1 模型构造1.1 自定义 MLP(多层感知机)1.1.1 __init__ (构造函数)1.1.2 forward (前向传播)1.2 使用自定义 MLP1.3 自定义 Sequential 类1.4 前向传播1.5 模块的嵌套使用2 参数管理2.1 参数访问2.2 嵌套模型2.3 参数初始化2.4 参数共享3 自定义层…

汇编语言和高级语言的差异

汇编语言与高级语言在以下几个方面存在重要的区别:缺少结构化流程控制。汇编语言不提供if/else、switch/case、for、while等高级控制结构,依赖于底层的无条件跳转和条件跳转指令来实现流程控制。这种基于标签和跳转的方式虽然极其灵活,但缺乏…

文件管理从基础到高级:文件描述符、超大文件切片重组与快速删除实战

文件管理从基础到高级:文件描述符、超大文件切片重组与快速删除实战目标读者:Linux/macOS 用户、后端/运维/数据工程师 环境默认:Linux(GNU 工具链),macOS 类似;Windows 可使用 WSL1&#xff09…

RPC 解析

RPC(Remote Procedure Call,远程过程调用)是一种让分布式系统中的服务能够像调用本地函数一样调用远程服务的通信机制。以下是其核心原理、技术实现及组件的详细解析:🔧 一、RPC 核心工作原理(10 步全流程&…

wstool的一个完整的工作流解析

moveit的仓库源码编译的时候使用的是wstool来拉取仓库的所有内容文件,其命令流程如下: wstool init src wstool merge -t src https://raw.githubusercontent.com/moveit/moveit/master/moveit.rosinstall wstool update -t src rosdep install -y --from-paths src…

对数函数分段定点实现

目录 一、原理介绍 二、代码实现 三、结果显示 四、移植到C语言中的应用 4.1. 定义定点数配置和参数 4.2. 实现分段查找函数 4.3. 实现 log10 近似计算函数 4.4. (可选)定点数转浮点数 一、原理介绍 之前的博文对数函数分段线性实…

qt系统--事件

文章目录qt系统事件处理鼠标事件鼠标移动事件处理键盘事件定时器事件窗口移动和大小改变事件结语很高兴和大家见面,给生活加点impetus!!开启今天的编程之路!! 作者:٩( ‘ω’ )و260 我的专栏&#xff1a…

Linux机器可直接使用的自动化编译文件

还在为了Linux机器上一遍遍输入编译指令苦恼吗?你需要make指令以及自己的makefile文件!在makefile中写入自己的个性化指令,让编译速度飞起,支持多文件编译一下文件为个人应用,可以直接cp到相应项目的目录,每…

Linux学习-数据结构(哈希表)

1.哈希表1.哈希算法将数据通过哈希算法映射成一个关键值,存放都在同一位置实现数据的高效存储和查找,将时间复杂度尽可能降低至O(1)2.哈希碰撞多个数据通过哈希算法得到的键值相同,称为产生哈希碰撞3.哈希表构建哈希表…

Google Chrome <139.0.7236.0 UAF漏洞

【高危】Google Chrome <139.0.7236.0 UAF漏洞 漏洞描述 Google Chrome 是美国谷歌&#xff08;Google&#xff09;公司的一款Web浏览器。 受影响版本中&#xff0c;OpenscreenSessionHost::ReportAndLogError 方法的参数使用了 std::string_view 类型来接收错误消息。当一…

CentOS8 Stream 网卡配置及重启

在 CentOS 8 Stream 中&#xff0c;网卡配置已由 NetworkManager 管理&#xff0c;传统的 ifcfg-eth0 文件仍然支持&#xff0c;但推荐使用 nmcli 或 nmtui 工具进行网络配置和管理。以下是网卡配置及重启的详细步骤&#xff1a;1. 查看当前网卡状态列出所有网卡bash复制nmcli …

SpringMvc的原理深度剖析及源码解读

一、springmvc启动加载流程1、引入spring-web.jar包时&#xff0c;在这个包的META-INF/services/javax.servlet.ServletContainerInitializer文件中定义的加载类SpringServletContainerInitializer,提供给springmvc实现初始化的操作。2、在SpringServletContainerInitializer类…

【ESP32-menuconfig(1) -- Build Type及Bootloader config】

Build Type Bootloader configmenuconfig介绍Build typeCONFIG_APP_BUILD_TYPECONFIG_APP_BUILD_TYPE_PURE_RAM_APPCONFIG_APP_REPRODUCIBLE_BUILDCONFIG_APP_NO_BLOBSCONFIG_APP_COMPATIBLE_PRE_V2_1_BOOTLOADERSCONFIG_APP_COMPATIBLE_PRE_V3_1_BOOTLOADERSBootloader config…

C++信息学奥赛一本通-第一部分-基础一-第3章-第1节

C信息学奥赛一本通-第一部分-基础一-第3章-第1节 2051 偶数 #include <iostream>using namespace std;int main() {int number; cin >> number;if (number % 2 0) {cout << "yes";} }2052 范围判断 #include <iostream>using namespace std…

自由学习记录(79)

PBRBRDF原理&Unity实现深入浅出_哔哩哔哩_bilibili 进行改进 一个像素点对应一个范围内的 一个微表面--一个由无数个起起伏伏的结构组成的物理结构 屏幕上的每一个像素点&#xff0c;在渲染时通常会被视为一个“微表面”的代表 比如在这个图中&#xff0c;只关心红色的区…