- 博客(420)
- 资源 (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
6131
4

原创 Oracle 体系结构详解
Oracle的体系结构大体上分为两部分:Instance(实例)和Database(数据库)。Oracle体系结构我们平时说的Oracle Server(Oracle服务器)就是由Oracle Instance和Oracle Database组成的,如下图:
2021-01-25 21:28:42
3731
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
7568
原创 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
67
原创 SQL Server 查询数据库及数据文件大小
如果不想每次写SQL查询,建议写成可重复使用的存储过程,之后调用存储过程即可。size 单位是 8KB,所以需要乘 8 后再除以 1024 转换为 MB。可以看到每个文件的逻辑名称、文件类型(数据或日志)、路径及大小。包括数据文件(.mdf)和日志文件(.ldf)的大小。该命令会返回当前数据库的总大小、未使用空间等信息。前提是你已经 USE 到目标数据库中。
2025-06-24 17:37:01
526
原创 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
626
原创 Oracle 查看所有表的字段名、数据类型及长度
data_type: 数据类型(如 VARCHAR2, NUMBER)data_length: 数据长度。column_name: 字段名。table_name: 表名。
2025-06-18 15:46:25
578
原创 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
595
原创 Oracle启动及关闭行移动
Oracle 在执行某些操作(如将LOB数据从一个表空间迁移至另一个表空间)前,需启动相关表的行移动。对应操作完成后需关闭行移动。所以本文将介绍表的行移动相关操作,需要对大家有所帮助。
2025-06-17 11:45:09
197
原创 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
455
原创 SQL Server 修改数据库名及物理数据文件名
当前有一 SQL Server 数据库,数据库名称为 study ,现需将该数据库名称修改为 studyold ,并同时根据新用户名修改物理数据文件的名称。
2025-06-13 15:53:43
579
原创 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
383
原创 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
440
转载 Linux下对LVM逻辑卷分区大小调整 [针对xfs和ext4文件系统]
当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间。如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷分区),那么就可以轻松进行扩容或缩容!硬要减小的话,只能在减小后将逻辑分区重新通过mkfs.xfs命令重新格式化才能挂载上,这样的话这个逻辑分区上原来的数据就丢失了。虽然xfs文件系统只支持增加,不支持减少。4)再次看着系统分区,发现home分区已经增加了90G(这种方式增加后,home分区之前的数据还不会丢失)
2025-05-14 10:46:30
252
原创 SPOOL命令详解
SPOOL是 SQLPLUS的命令,必须在SQLPLUS中使用,主要完成以标准输出方式输出SQLPLUS的命令及执行结果,一般常用户格式化导出ORACLE表数据。//输出每页行数,缺省为 0,为了避免分页,可设定为 0;//去除重定向( spool)输出每行的拖尾空格,缺省为 off。//显示 start启动的脚本中的每个 sql命令,缺省为 on。//去除标准输出每行的拖尾空格,缺省为 off。//显示脚本中的命令的执行结果,缺省为 on。//显示每条sql命令的耗时,缺省为off。
2025-05-07 13:58:11
441
原创 SQL Server 数据库重命名
为了快速获取独占访问权限,代码示例使用终止选项 WITH ROLLBACK IMMEDIATE。这将导致所有未完成的事务被回滚,并将立刻断开 MyTestDatabase 数据库的所有其他连接。如果要重命名的数据库被设置为 SQL Server 登录名的默认数据库,则可能会遇到错误。使用下列步骤在 SSMS 中使用 T-SQL 重命名 SQL Server 数据库。3.将以下示例复制并粘贴到查询窗口中,然后选择“执行”。1.为实例连接到 master 数据库。2.打开一个查询窗口。
2025-04-30 14:00:00
579
转载 如何快速判断Oracle数据库是否运行缓慢
在这种情况下,我们的生产数据库在预期的响应时间内运行。显然,如果遇到数据库响应时间缓慢的问题,应该调查根本原因,并根据具体情况采取纠正措施。现在就有了数据库当前的响应时间。接下来需要做的就是和已经建立的阈值或其它窗口的响应时间做比较。可以检查以下视图: dba_hist_sysmetric_history 和 dba_hist_sysmetric_summary。你的工作是根据每种情况的具体细节来了解响应时间是否令人满意。查看过去一分钟数据库的最小、最大、平均的响应时间。查看过去一分钟数据库的响应时间。
2025-03-25 13:22:54
93
原创 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
627
原创 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
724
原创 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
583
转载 MySQL代理用户Proxy User
本文通过实际工作中的一个客户需求来简单介绍一下MySQL数据库中的代理用户这个概念,所谓的代理用户,顾名思义就是作为真实用户的代理来登录数据库,对数据库进行访问,原则上讲,官方文档中描述的情况是建议不要用隐藏在代理用户后面的真实用户登录,代理就是为了不暴露真实用户而已。代理相关参数需要注意开启:check_proxy_users,mysql_native_password_proxy_users,sha256_password_proxy_users。多个用户可以共用一个代理用户,但是不推荐。
2025-03-13 11:22:39
235
原创 ORA-22868: 具有 LOB 的表包含有位于不同表空间的段
说明:BLOBS表空间存放的是LOB数据,LOB数据所属表在USERS表空间上。可能是因为BLOBS表空间中还有数据没有迁移完,倒是无法删除。上述命令执行完成后,再次尝试删除BLOBS表空间。删除约束后,可再次尝试删除BLOBS表空间。发现有结果输出,印证了之前的猜测。正常情况下,此时可成功删除表空间。
2025-03-03 14:06:22
306
原创 ORA-39002 ORA-39070 ORA-29283 ORA-06512 ORA-29283 错误处理
此时再次执行expdp命令,会发现上述错误已消除。所以,命令中使用的逻辑目录不存在。将逻辑目录的读写权限赋给用户rui。1.查询指定的逻辑目录是否存在。所以可通过如下思路处理问题。3.再次执行expdp命令。2.创建逻辑目录及赋权。
2025-03-03 11:22:02
875
原创 如何停止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
1113
2
原创 Oracle 导出所有表索引的创建语句
在Oracle数据库中,导出所有表的索引创建语句通常涉及到使用数据字典视图来查询索引的定义,然后生成对应的SQL语句。你可以通过查询DBA_INDEXES或USER_INDEXES视图(取决于你的权限和需求)来获取这些信息。如果你有足够的权限(通常是DBA角色),你可以使用DBA_INDEXES视图来获取所有用户的索引信息。通常,DBA_INDEXES需要DBA角色,而USER_INDEXES只需要普通用户权限。如果你只想获取特定类型的索引(例如,仅唯一索引),可以在查询中添加相应的WHERE条件。
2025-02-28 19:01:07
731
原创 Linux 使用 df 和 du 查询磁盘使用情况 结果不一致
但是当一个文件被删除时,如果还有进程在引用这个文件,根据前文的分析,bmap中不会将这个文件的data block标记为未使用,也就不会将数据块的使用情况更新到superblock中。如果在/mnt目录下有3G的文件,然后在/mnt上挂载了其他文件系统,/mnt下原本那3G的文件就被隐藏起来无法访问,du当然无法统计这部分数据大小(但du会统计挂载在/mnt上的文件),但df会统计这部分信息。它的数据是基于文件获取的,所以有很大的灵活性,不一定非要针对一个分区,可以跨越多个分区操作。
2025-02-28 18:14:24
1365
原创 Oracle 查询表空间使用情况及收缩数据文件
本文介绍Oracle收缩数据文件的相关操作,运维工作中有时会需要通过收缩数据文件来释放磁盘空间。1.我们创建表空间一般有两种方式初始化其数据文件,即指定初始大小为32G(很大的值)或指定初始大小为100M(很小的值)然后通过自动扩展方式慢慢按需增长。2.第一种初始数据文件方法坏处就是开始不管你用不用到那么大,都会占用这么大的磁盘空间(这种数据迁移的时候可以使用)。第二种初始化方法按需增长,比较好的监控实际使用磁盘空间,所以推荐初始值很小,使用自动扩展慢慢增长的方式。
2025-02-27 10:34:29
797
原创 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
981
转载 oracle 性能分析
4.查看究竟是什么类型的用户活动影响数据库的响应速度,找到相应的主要花费时间处理的部分。7.查看等待事件来找出等待和瓶颈,找出大部分的整体等待时间。5.等待时间中的等待事件,等待的文件,等待的对象。3.获得数据库整体性能效率的最大、最小和平均值。10.找出需要大量缓冲读取(逻辑读)操作的查询。6.前5位用户I/O等待最高的SQL语句。9.找出耗费资源比较多的SQL语句。11.列出使用频率最高的5个查询。12.消耗磁盘读取最多的sql。8.最新的一个小时等待类型。2.查看数据库的总性能。
2025-02-18 10:45:49
178
转载 IP与端口映射,一篇文章速成
局域网的类型很多,若按网络使用的传输介质分类,可分为有线网和无线网;同理,B 的过程也是一样。A 和 B 访问百度服务器,尽管它们的局域网 IP 是一样的,但是最终它们访问百度的地址(IP + 端口)是唯一的,所以,百度服务器回复时,原路返回时能够区分到底给谁回。最后,其他人写客户端程序时(电脑能上外网),只要指定目的 IP 地址为 128.0.0.123,端口为 8888,通过这个地址,就能找到192.168.31.248:8080,因为这两者已经建立好映射,如上图,这样,我们的服务器就能收到数据。
2025-02-13 20:57:41
232
转载 SQL sever中的触发器
触发器可能会对数据库的性能产生影响,特别是当它们涉及到大量数据的时候。因此,在设计和使用触发器时,应该仔细考虑其对性能的潜在影响,并确保它们被正确地配置和处理。
2025-02-11 20:27:37
2766
转载 SqlServer基础之(触发器)
DDL触发器是当服务器或者数据库中发生数据定义语言(主要是以create,drop,alter开头的语句)事件时被激活使用,使用DDL触发器可以防止对数据架构进行的某些更改或记录数据中的更改或事件操作。
2025-02-11 13:31:35
452
转载 Oracle 对象依赖性与对象失效详解
某些类型的对象可以在其定义中引用其他对象。如果对象A的定义引用了对象B,则A是(B的)依赖对象,而B是(A的)引用对象。Oracle自动跟踪和管理依赖关系,以确保依赖对象A相对于其引用对象B而言始终是最新的。当B以可能影响A的方式更改时(通常是DDL语句),A会被标记为失效。在使用A之前,必须针对B的新定义重新编译失效的依赖对象。当引用失效的依赖对象时,它会自动重新编译。由于这种自动管理,A永远不会使用过时的B版本,并且在更改B之后几乎不需要显式重新编译A。
2025-02-10 19:58:40
155
转载 Oracle数据库用户的profile详解和修改
在Oracle数据库中,profile是用来限制数据库用户在系统资源和密码参数上的命名集合。每个Oracle用户都会被分配一个Profile,Profile中定义了用户会话可以使用的资源限制。通过Profile,我们可以控制用户对数据库资源的访问和使用,以确保数据库的稳定性和安全性。一旦用户超出了Profile中定义的资源限制,数据库会对用户的操作进行限制或拒绝。
2025-02-08 16:49:21
342
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人