标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-00742 ORA-01110 ORA-01555 ORA-01578 ORA-08103 ORA-600 2131 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (103)
- 数据库 (1,716)
- DB2 (22)
- MySQL (74)
- Oracle (1,576)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (160)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (68)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (28)
- Oracle备份恢复 (575)
- Oracle安装升级 (94)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (81)
- PostgreSQL (18)
- PostgreSQL恢复 (6)
- SQL Server (28)
- SQL Server恢复 (9)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (37)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (20)
-
最近发表
- 不当使用_allow_resetlogs_corruption参数引起ORA-600 2662错误
- CSSD signal 11 in thread clssnmRcfgMgrThread故障处理
- 使用sid方式直接访问pdb(USE_SID_AS_SERVICE_LISTENER)
- ORA-00069: cannot acquire lock — table locks disabled for xxxx
- ORA-600 [4000] [a]相关bug
- sql server数据库“正在恢复”故障处理
- 如何判断数据文件是否处于begin backup状态
- CDM备份缺少归档打开数据库报ORA-600 kcbzib_kcrsds_1故障处理
- ORA-07445: exception encountered: core dump [expgod()+43] [IN_PAGE_ERROR]
- 2025年第一起ORA-600 16703故障恢复
- _gc_undo_affinity=FALSE触发ORA-01558
- public授权语句
- 中文环境显示AR8MSWIN1256(阿拉伯语字符集)
- 处理 Oracle 块损坏
- Oracle各种类型坏块说明和处理
- fio测试io,导致磁盘文件系统损坏故障恢复
- ORA-742 写丢失常见bug记录
- Oracle 19c 202501补丁(RUs+OJVM)-19.26
- 避免 19c 数据库性能问题需要考虑的事项 (Doc ID 3050476.1)
- Bug 21915719 Database hang or may fail to OPEN in 12c IBM AIX or HPUX Itanium – ORA-742, DEADLOCK or ORA-600 [kcrfrgv_nextlwn_scn] ORA-600 [krr_process_read_error_2]
分类目录归档:SQL Server
创建sql server分区表
1、创建数据库
USE Master GO CREATE DATABASE Test_Partitioning ON PRIMARY (NAME='Partitioning_1', FILENAME= 'E:\database\partitions\Partitioning_1.mdf', SIZE=4, MAXSIZE=100, FILEGROWTH=1 ), FILEGROUP FG2 (NAME = 'Partitioning_2', FILENAME = 'E:\database\partitions\Partitioning_2.mdf', SIZE = 4, MAXSIZE=100, FILEGROWTH=1 ), FILEGROUP FG3 (NAME = 'Partitioning_3', FILENAME = 'E:\database\partitions\Partitioning_3.mdf', SIZE = 4, MAXSIZE=100, FILEGROWTH=1 ) GO
2、创建分区函数
Use test_Partitioning GO CREATE PARTITION FUNCTION salesYearPartitions (datetime) AS RANGE RIGHT FOR VALUES ( '2009-01-01', '2010-01-01') GO
说明:
RIGHT:表示”=”在右边
LEFT:表示”=”在左边
3、创建分区方案
Use test_Partitioning GO CREATE PARTITION SCHEME Test_PartitionScheme AS PARTITION salesYearPartitions TO ([PRIMARY], FG2, FG3 ) GO
4、使用分区创建表
Use test_Partitioning GO CREATE TABLE SalesArchival (SaleTime datetime PRIMARY KEY, ItemName varchar(50)) ON Test_PartitionScheme (SaleTime); GO
5、验证SQL语句
5.1)确定文件组的数量和数据库数据文件的数量
Use test_Partitioning GO -- Confirm Filegroups SELECT name as [File Group Name] FROM sys.filegroups WHERE type = 'FG' GO -- Confirm Datafiles SELECT name as [DB File Name],physical_name as [DB File Path] FROM sys.database_files where type_desc = 'ROWS' GO
5.2)验证分区表上的数据分布
Use test_Partitioning GO select partition_id, index_id, partition_number, Rows FROM sys.partitions WHERE OBJECT_NAME(OBJECT_ID)='SalesArchival' GO
发表在 SQL Server
评论关闭
sql server中查看对象
1、查询所有数据库
select * from sys.databases;
2、查询对象
select * from sysobjects;
3、复制表结构和数据
SELECT * INTO t_1 FROM master.dbo.spt_monitor;
4、查询视图
SELECT * FROM sys.views;
5、查询列
select * from sys.columns;
6、查询索引
select * from sys.indexes;
发表在 SQL Server
评论关闭
由于文件组 ‘DEFAULT’ 中的磁盘空间不足,无法为数据库 ‘TEMPDB’ 分配新页
今天接到一个朋友的问题,sql server报“由于文件组 ‘DEFAULT’ 中的磁盘空间不足,无法为数据库 ‘TEMPDB’ 分配新页”,按照错误提示应该是tempdb空间不足,让其查看tempdb对应数据库文件大小为不到4g,查看其对应文件为自增长,硬盘空间还有40g多点,那应该没有问题。后来她说该文件所处位置的盘是fat32的,那问题确定是fat32最大支持文件大小是4g。解决办法:
1、让tempdb中的文件恢复默认值,设置其最大值
1)重启sql server服务,tempdb一般会自动变为初始化大小
2)如果1)失败,使用下面语句
dbcc shrinkfile (tempdev, 10)
dbcc shrinkfile (templog, 10)
2)然后设置tempdev和templog的最大大小为4000m
2、添加数据文件和日志文件,并设置其最大值为4000m
3、修改程序,从根源上解决问题
分析产生该问题原因
询问朋友后,原来是她对一个6kw的表和1kw的表进行关联,然后取得需要的数据插入到另一张表中,因为涉及的数据量非常大,所有导致tempdb数据库飞速增大,超过系统文件大小限制。导致文章开始的错误,光添加文件,对于这么大数据量的程序来说还是不能解决问题。应该在程序上去优化,而不是靠添加tempdb中文件的大小和数量来解决问题。
添加程序的提交次数,而不是所有数据一次提交,放在一个事物中。
我根据程序需求模拟的写了两种处理过程的方法
模拟环境:
--创建模拟表 SELECT id,name INTO t_1 FROM sys.sysobjects; SELECT object_id id,name INTO t_2 FROM sys.columns; --创建跟踪表 CREATE TABLE t_s (id int DEFAULT 0,date datetime DEFAULT getdate()); INSERT INTO t_s VALUES(0,getdate()); --创建需要插入数据表 SELECT t1.name n1, t2.name n2, t1.id INTO test_1 FROM t_1 t1, t_2 t2 WHERE t1.id = t2.id AND 1=2;
方法一:
特点:1、优点执行效率比较高,无需排序和插入跟踪表
2、缺点:不能查看程序执行进度,如果异常终止,必须重新执行
create PROCEDURE [dbo].[INSERT_d_1] AS DECLARE @name1 varchar(4000) DECLARE @name2 varchar(4000) DECLARE @id int DECLARE c1 CURSOR FOR SELECT t1.name, t2.name, t1.id FROM t_1 t1, t_2 t2 WHERE t1.id = t2.id ORDER BY t1.id open c1 fetch next from c1 into @name1,@name2,@id WHILE @@fetch_status=0 BEGIN INSERT INTO test_1 VALUES(@name1,@name2,@id) FETCH next FROM c1 INTO @name1,@name2,@id END CLOSE c1 DEALLOCATE c1
方法二:
特点:1、可以跟踪程序的执行进度查询t_s表,如果异常终止可以写其他程序继续
2、程序使用二重游标,执行效率比较低
create PROCEDURE [dbo].[INSERT_d_2] AS DECLARE @name1 varchar(4000) DECLARE @name2 varchar(4000) DECLARE @id int DECLARE c1 CURSOR FOR SELECT t1.name, t1.id FROM t_1 t1 ORDER BY t1.id open c1 fetch next from c1 into @name1,@id WHILE @@fetch_status=0 BEGIN --二重循环 DECLARE c2 CURSOR FOR SELECT t2.name FROM t_2 t2 WHERE t2.id=@id OPEN c2 FETCH next FROM c2 INTO @name2 WHILE @@FETCH_STATUS=0 BEGIN INSERT INTO test_1 VALUES(@name1,@name2,@id) UPDATE t_s SET id=@id,date=getdate() FETCH next FROM c2 INTO @name2 END CLOSE c2 DEALLOCATE c2 FETCH next FROM c1 INTO @name1,@id END CLOSE c1 DEALLOCATE c1
发表在 SQL Server
评论关闭