- 博客(426)
- 资源 (1)
- 收藏
- 关注
原创 Oracle 参数文件 & 参数详解
Oracle 参数文件 & 参数详解参数文件1、instance 功能:用于管理和访问 database。instance 在启动阶段读取初始化参数文件 (init parameter files)。2、init parameter files :管理实例相关启动参数 。位置:$ORACLE_HOME/dbs3、pfile :(parameter file)静态参数文件。1)文本文件,必须通过编辑器修改参数。 2)修改参数下次重启实例才生效。3)pfile 参数文件可以不在 databas
2021-02-09 13:30:38
6409
4
原创 Oracle 体系结构详解
Oracle的体系结构大体上分为两部分:Instance(实例)和Database(数据库)。Oracle体系结构我们平时说的Oracle Server(Oracle服务器)就是由Oracle Instance和Oracle Database组成的,如下图:
2021-01-25 21:28:42
4188
2
原创 Oracle数据库启动和关闭
在介绍oracle数据库的启动和关闭前,先看一下Oracle的参数文件。oracle参数文件1.初始化参数文件oracle的初始化参数文件分为spfilesid.ora、spfile.ora、initsid.ora,都在oracle database下。pfile 和 spfile 可以相互生成:SQL>create pfile from spfile //通过spfile文件中创建pfile文件添加路径例:SQL>create pfile='/oradata/oracle/ap
2021-01-22 14:13:17
7744
原创 Linux 服务器 Mysql 8.4.6 安装
说明:本次安装Mysql版本为 Mysql 8.4.6 ,操作系统为 Red Hat Enterprise Linux 9。
2025-11-12 16:25:20
425
原创 如何正确删除旧的 .aud 文件?
如果 .aud 文件频繁生成(例如登录失败、权限审计),可以考虑关闭或优化审计功能。这些是数据库登录、权限操作等产生的审计文件,删除旧文件不会影响数据库运行。Oracle 不会锁定旧的 .aud 文件,因此可直接删除。• -mtime +7 表示删除 7 天前的文件。• 如果你公司或合规要求开启审计,请勿关闭。✅ 可以安全删除旧的 .aud 文件。• 修改后必须 重启数据库 才生效。• 可以调整为 +3、+30 等。
2025-10-15 15:07:57
388
原创 Oracle 如何正确清理监听文件?
Oracle 监听日志(listener log)文件确实可能越积越大,占用大量磁盘空间。下面是安全删除或清理 Oracle 监听日志文件的方法介绍。
2025-10-15 14:53:38
352
原创 ORA-01950: no privileges on tablespace ‘USERS’ 处理
解决方法就是给该用户在表空间上分配 quota,通常设置为 UNLIMITED ON USERS 就能解决。如果用户没有在目标表空间上的 quota(配额),就会报 ORA-01950。1)新建用户时没有指定默认表空间,系统默认使用 USERS,但没有给配额。说明数据库用户 TESTUSER在 USERS 表空间上没有使用权限。Oracle 在创建表、索引或插入数据时,需要向表空间申请磁盘空间。2)插入大量数据或创建对象时超出了配额。2.给用户分配表空间配额。
2025-09-08 13:59:49
492
原创 ORA-22858: invalid alteration of datatype 错误处理
👉 不能直接用 ALTER TABLE …MODIFY 把 VARCHAR2 改成 CLOB。VARCHAR2 和 CLOB 属于不同的大类存储,Oracle 不允许直接转换。
2025-09-01 15:34:21
442
原创 MySQL 主从结构停库后重启操作及常见错误处理方法
当启用了 GTID(即 gtid_mode = ON 且 MASTER_AUTO_POSITION = 1),MySQL 不再使用 binlog 文件和位置来控制复制,而是使用 GTID 来自动定位事务同步点。这说明从库已经成功连接主库(IO 线程正常),但 SQL 线程未运行,这通常是因为复制过程中出现了 SQL 执行错误(例如主库的 DML 在从库无法执行)。可能是因为user1的密码并非Pasd1,此时在确定可以修改user1密码(无其他重要程式使用该用户)的情况下,可将密码修改为Pasd1。
2025-07-21 14:28:58
1286
原创 Mysql 查看当前事务锁
⚠️ 这只会 KILL 处于等待状态的线程,不会杀掉持锁线程(即“元凶”线程)。trx_state:事务状态(如:RUNNING、LOCK WAIT等)此语句会显示哪些事务在等待锁,哪些事务持有锁,方便定位阻塞。⚠️ 杀掉持锁事务可能会终止正在执行的写操作,请务必确认!lock_type(类型:RECORD, TABLE)trx_mysql_thread_id:线程ID。lock_mode(锁模式,e.g. S, X)trx_query:正在执行的SQL语句。一、查看当前锁等待情况(推荐)
2025-07-18 11:20:31
506
原创 SQL Server 查询数据库及数据文件大小
如果不想每次写SQL查询,建议写成可重复使用的存储过程,之后调用存储过程即可。size 单位是 8KB,所以需要乘 8 后再除以 1024 转换为 MB。可以看到每个文件的逻辑名称、文件类型(数据或日志)、路径及大小。包括数据文件(.mdf)和日志文件(.ldf)的大小。该命令会返回当前数据库的总大小、未使用空间等信息。前提是你已经 USE 到目标数据库中。
2025-06-24 17:37:01
1670
原创 ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)
看起来是在尝试通过本地 Unix socket /tmp/mysql.sock 连接 MySQL,但该 socket 文件不存在。可能是因为 MySQL 使用了不同的 socket 路径。所以 socket 的正确路径为/mysql/data/mysql.sock。
2025-06-18 16:23:30
1104
原创 Oracle 查看所有表的字段名、数据类型及长度
data_type: 数据类型(如 VARCHAR2, NUMBER)data_length: 数据长度。column_name: 字段名。table_name: 表名。
2025-06-18 15:46:25
1589
原创 SQL Server 查询所有表数据量
sp_MSforeachdb 是未文档化的存储过程,虽然广泛使用但微软不推荐用于关键任务。sys.partitions:每个表(或分区)在物理存储层面的分区信息,包含记录数(rows)。需要跨多个数据库查,可以使用 sp_MSforeachdb 或手动遍历数据库执行2中语句。index_id IN (0, 1):过滤掉非主数据行的分区(如非聚集索引的副本)。每个数据库都会输出一个标题,然后列出其所有表及记录数。sys.tables:获取数据库中所有用户表。sp_MSforeachdb:遍历所有数据库。
2025-06-17 14:03:13
1251
原创 Oracle启动及关闭行移动
Oracle 在执行某些操作(如将LOB数据从一个表空间迁移至另一个表空间)前,需启动相关表的行移动。对应操作完成后需关闭行移动。所以本文将介绍表的行移动相关操作,需要对大家有所帮助。
2025-06-17 11:45:09
410
原创 Oracle 创建索引时报错 ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
创建索引的对象当前正被其他会话占用(如正在进行 DML 操作:INSERT、UPDATE、DELETE)。注:但并非所有类型的索引或表都支持 ONLINE,要看具体环境。语句已被 Oracle 清出共享池(例如长期未提交)SQL 已执行完但事务未提交(仍持锁)
2025-06-13 16:19:04
717
原创 SQL Server 修改数据库名及物理数据文件名
当前有一 SQL Server 数据库,数据库名称为 study ,现需将该数据库名称修改为 studyold ,并同时根据新用户名修改物理数据文件的名称。
2025-06-13 15:53:43
773
原创 Mysql备份表时java.sql.SQLException: Statement violates GTID consistency: CREATE TABLE ... SELECT.错误处理
这是因为正在使用 MySQL 的 GTID 模式(全局事务标识符),而该模式下 不允许使用 CREATE TABLE …SELECT 语句,因为它不是事务性安全的操作。在开启了 GTID 的 MySQL 实例中(通常用于主从复制或分布式事务),为了保证每个事务都可以被唯一标识和复制,所有语句都必须是事务安全的。SELECT 是复合语句,不能被包装在一个事务中,因此被禁止。然后再执行 CREATE TABLE …SELECT 语句。这两条语句都是 GTID 模式下允许的。因为业务需求,要对表做变更。
2025-06-12 19:41:42
575
原创 SQL Server 查询数据库中所有表中所有字段的数据类型及长度
ActualLengthChars:你定义的字符数,比如 nvarchar(50) 实际为 50 字符,但占用 100 字节。DataTypeWithLength:数据类型及长度,如nvarchar(20)1.查看所有表字段的(数据类型 + 长度描述 + 实际长度(字节))is_nullable:是否允许 NULL(0代表否,1代表是)2.如果你希望显示“字符长度”而不是字节数,可使用如下SQL。SchemaName:表所属的 schema,例如 dbo。MAX 类型会显示为 -1(表示可变最大)
2025-06-11 18:49:53
700
转载 Linux下对LVM逻辑卷分区大小调整 [针对xfs和ext4文件系统]
当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间。如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷分区),那么就可以轻松进行扩容或缩容!硬要减小的话,只能在减小后将逻辑分区重新通过mkfs.xfs命令重新格式化才能挂载上,这样的话这个逻辑分区上原来的数据就丢失了。虽然xfs文件系统只支持增加,不支持减少。4)再次看着系统分区,发现home分区已经增加了90G(这种方式增加后,home分区之前的数据还不会丢失)
2025-05-14 10:46:30
705
原创 SPOOL命令详解
SPOOL是 SQLPLUS的命令,必须在SQLPLUS中使用,主要完成以标准输出方式输出SQLPLUS的命令及执行结果,一般常用户格式化导出ORACLE表数据。//输出每页行数,缺省为 0,为了避免分页,可设定为 0;//去除重定向( spool)输出每行的拖尾空格,缺省为 off。//显示 start启动的脚本中的每个 sql命令,缺省为 on。//去除标准输出每行的拖尾空格,缺省为 off。//显示脚本中的命令的执行结果,缺省为 on。//显示每条sql命令的耗时,缺省为off。
2025-05-07 13:58:11
1099
原创 SQL Server 数据库重命名
为了快速获取独占访问权限,代码示例使用终止选项 WITH ROLLBACK IMMEDIATE。这将导致所有未完成的事务被回滚,并将立刻断开 MyTestDatabase 数据库的所有其他连接。如果要重命名的数据库被设置为 SQL Server 登录名的默认数据库,则可能会遇到错误。使用下列步骤在 SSMS 中使用 T-SQL 重命名 SQL Server 数据库。3.将以下示例复制并粘贴到查询窗口中,然后选择“执行”。1.为实例连接到 master 数据库。2.打开一个查询窗口。
2025-04-30 14:00:00
851
转载 如何快速判断Oracle数据库是否运行缓慢
在这种情况下,我们的生产数据库在预期的响应时间内运行。显然,如果遇到数据库响应时间缓慢的问题,应该调查根本原因,并根据具体情况采取纠正措施。现在就有了数据库当前的响应时间。接下来需要做的就是和已经建立的阈值或其它窗口的响应时间做比较。可以检查以下视图: dba_hist_sysmetric_history 和 dba_hist_sysmetric_summary。你的工作是根据每种情况的具体细节来了解响应时间是否令人满意。查看过去一分钟数据库的最小、最大、平均的响应时间。查看过去一分钟数据库的响应时间。
2025-03-25 13:22:54
137
原创 ORA-12162: TNS:net service name is incorrectly specified
这样就不用经常执行 export ORACLE_SID=study 命令了。SQL plus 连接实例报错,已确定实例是open状态。修改 .bash_profile 文件。可能是没有指定正确的SID。
2025-03-18 16:41:24
1103
原创 ORA-00910: specified length too long for its datatype
在Oracle Database 12c中,我们可以为varchar2、nvarchar2和RAW数据类型指定32767 bytes 的最大长度了, 以便用户将更长的字符串存储在数据库中。对比 DB1 和 DB2 的查询结果,发现参数 NLS_NCHAR_CHARACTERSET 的值不同(DB1:UTF8 DB2:AL16UTF16)在12c之前的版本中,varchar2和nvarchar2数据类型的最大长度是4000 bytes,而raw是2000 bytes。旧库 — DB1(有数据 )
2025-03-18 16:17:32
972
原创 Oracle 查询数据库对象的DDL语句
OBJECT_TYPE:对象的类型,如TABLE、INDEX、FUNTION、JOB、PACKAGE、SEQUENCE等;可使用 DBMS_METADATA.GET_DDL()函数 查询数据库对象的DDL语句。SCHEMA:对象所在schema,默认为当前用户所在schema;7.查询一个用户下的所有表,索引,存储过程的ddl。3.查询RUI用户下索引PK_DEPT的DDL。1.查询当前用户下表EXAMPLE的DDL。2.查询RUI用户下表JOB1的DDL。5.查询创建用户RUI的ddl。
2025-03-13 14:12:56
889
转载 MySQL代理用户Proxy User
本文通过实际工作中的一个客户需求来简单介绍一下MySQL数据库中的代理用户这个概念,所谓的代理用户,顾名思义就是作为真实用户的代理来登录数据库,对数据库进行访问,原则上讲,官方文档中描述的情况是建议不要用隐藏在代理用户后面的真实用户登录,代理就是为了不暴露真实用户而已。代理相关参数需要注意开启:check_proxy_users,mysql_native_password_proxy_users,sha256_password_proxy_users。多个用户可以共用一个代理用户,但是不推荐。
2025-03-13 11:22:39
358
原创 ORA-22868: 具有 LOB 的表包含有位于不同表空间的段
说明:BLOBS表空间存放的是LOB数据,LOB数据所属表在USERS表空间上。可能是因为BLOBS表空间中还有数据没有迁移完,倒是无法删除。上述命令执行完成后,再次尝试删除BLOBS表空间。删除约束后,可再次尝试删除BLOBS表空间。发现有结果输出,印证了之前的猜测。正常情况下,此时可成功删除表空间。
2025-03-03 14:06:22
364
原创 ORA-39002 ORA-39070 ORA-29283 ORA-06512 ORA-29283 错误处理
此时再次执行expdp命令,会发现上述错误已消除。所以,命令中使用的逻辑目录不存在。将逻辑目录的读写权限赋给用户rui。1.查询指定的逻辑目录是否存在。所以可通过如下思路处理问题。3.再次执行expdp命令。2.创建逻辑目录及赋权。
2025-03-03 11:22:02
1248
原创 如何停止Oracle expdp/impdp job
如果直接ctrl+c“停掉”,此时的“停掉”并不是真正的任务终止,它还在后台运行。这里说明一下正确停止job的操作步骤。如果直接ctrl+c“停掉”,此时的“停掉”并不是真正的任务终止,它还在后台运行。这里说明一下正确停止job的操作步骤。EXPDP_JOB 任务正在运行:EXECUTING。IMPDP_JOB 任务正在运行:EXECUTING。至此,已完全停止 expdp job。至此,已完全停止 impdp 任务。1.执行 expdp 命令。2.查看在运行的作业名称。2.查看在运行的作业名称。
2025-03-03 10:57:46
1642
2
原创 Oracle 导出所有表索引的创建语句
在Oracle数据库中,导出所有表的索引创建语句通常涉及到使用数据字典视图来查询索引的定义,然后生成对应的SQL语句。你可以通过查询DBA_INDEXES或USER_INDEXES视图(取决于你的权限和需求)来获取这些信息。如果你有足够的权限(通常是DBA角色),你可以使用DBA_INDEXES视图来获取所有用户的索引信息。通常,DBA_INDEXES需要DBA角色,而USER_INDEXES只需要普通用户权限。如果你只想获取特定类型的索引(例如,仅唯一索引),可以在查询中添加相应的WHERE条件。
2025-02-28 19:01:07
1005
原创 Linux 使用 df 和 du 查询磁盘使用情况 结果不一致
但是当一个文件被删除时,如果还有进程在引用这个文件,根据前文的分析,bmap中不会将这个文件的data block标记为未使用,也就不会将数据块的使用情况更新到superblock中。如果在/mnt目录下有3G的文件,然后在/mnt上挂载了其他文件系统,/mnt下原本那3G的文件就被隐藏起来无法访问,du当然无法统计这部分数据大小(但du会统计挂载在/mnt上的文件),但df会统计这部分信息。它的数据是基于文件获取的,所以有很大的灵活性,不一定非要针对一个分区,可以跨越多个分区操作。
2025-02-28 18:14:24
1768
原创 Oracle 查询表空间使用情况及收缩数据文件
本文介绍Oracle收缩数据文件的相关操作,运维工作中有时会需要通过收缩数据文件来释放磁盘空间。1.我们创建表空间一般有两种方式初始化其数据文件,即指定初始大小为32G(很大的值)或指定初始大小为100M(很小的值)然后通过自动扩展方式慢慢按需增长。2.第一种初始数据文件方法坏处就是开始不管你用不用到那么大,都会占用这么大的磁盘空间(这种数据迁移的时候可以使用)。第二种初始化方法按需增长,比较好的监控实际使用磁盘空间,所以推荐初始值很小,使用自动扩展慢慢增长的方式。
2025-02-27 10:34:29
1032
原创 You (oracle) are not allowed to access to (crontab) because of pam configuration 错误处理
只有cron.deny 文件,但文件无内容,不存在限制(如果存在cron.allow文件,以cron.allow文件优先;果如cron.allow和cron.deny都存在,以cron.allow文件优先;如果只有cron.deny 文件,只能以cron.deny 文件为准)怀疑可能是因Oracle用户设置了有效期导致 crontab -e 出错。再次执行crontab -e ,错误消除。
2025-02-21 16:44:03
1487
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅