我想知道在 SQL Server 中将数据库和数据从开发移动到预生产到生产的推荐方法。数据库最初是在 MS Access 中创建的,因此需要升级到 SQL Server
我读过的 3 个选项:(我确定还有其他选项)
任何建议最欢迎。
我正在将 Windows 中的 JIRA 从 HSQL 迁移到 MySQL,但我遇到了消息Unknown system variable 'storage_engine'。虽然我创建了一个备份,安装了 MySQL 并将 J 连接器复制到了 JIRA 的库中。
然后我设置系统变量storage_engine = InnoDB并重新启动机器,但消息仍然存在。
你能指点我一个好的方向吗?
我使用BLOBOracle 表中的数据类型来存储图像和文档文件。现在对于 Postgres(9.4.5),我有两个选择,即,BYTEA或OID.
考虑到从 Java 端传递参数(SAVING)如下:
DiskFileItemDeepy file = myFile;
InputStream is = null;
long fileSize = 0;
if (file != null && file.getFileSize() > 0){
is = file.getInputStream();
fileSize = file.getFileSize();
call.setBinaryStream(1, (InputStream)is, (long)fileSize);
}
...
call.execute();
//When retrieve the data use:
java.sql.Blob blob = (Blob) resultSet.getBlob(tableColumnName);
Run Code Online (Sandbox Code Playgroud)
出于上述目的,哪种 Postgres 数据类型更适合替换BLOB,是BYTEA还是OID?
我的 Centos 上有一个 Postgresql 数据库,我使用 barman 来备份我的数据库,我的问题是是否可以在不停机的情况下将我的数据库迁移到另一台服务器?我知道一些使用 pg_start_backup() 停机时间较短的解决方案,酒保也可以处理它,但是有没有办法在没有停机时间的情况下做到这一点?还有一个问题是,迁移它的最佳方式是什么?
我在我们的数据库中有一个非常重要的表,它被一系列应用程序使用,它附有规则、触发器和您可以想象的所有依赖项。现在我想修改表而不会对依赖项造成任何问题。我以前成功地执行了以下操作,但在一个不太复杂的情况下:
alter table reconciliations rename to matches;
create view reconciliations as select * from matches;
Run Code Online (Sandbox Code Playgroud)
这实现的是我现在可以修改新的“匹配”表,例如添加一列或多行,这些列或行不需要在“对帐”视图中显示(通过添加 where 子句来过滤它们)。
我使用的是 Postgres 9.5,因此视图可以自动更新。初步测试表明,这没有直接问题,所以我问这个问题是为了知道我应该寻找什么样的问题。性能不是大问题。
*.accdb我正在创建一个包含多个表和特定关系的MS Access数据库。
该数据库将用于将数据一次性传输到另一个系统,其中包含数百万个条目的顺序。使用 200 万个虚拟条目进行的测试已达到约 1.8GB 文件大小。由于 MS Access 对每个数据库文件有 2GB 的内置限制,因此我正在寻找绕过此限制的解决方案。
到目前为止我想出了两个想法:
将数据库拆分为两个文件,在从 file1 到 file2 的转换期间继续建立索引,并注意相关表中条目的独立性。
file1_table1 (indices 1..1000)
file2_table1 (indices 1001..N)
Run Code Online (Sandbox Code Playgroud)使用一个主接口文件将表导出到不同的文件
file1_table1
file2_table2
file3_table3
masterfile (linking table1..3 and creating table relationships)
Run Code Online (Sandbox Code Playgroud)我想获得一些有关概念、性能和可用性的想法的反馈,或者是否有任何其他想法。
请注意,我想坚持使用 MS Access,构建 SQL 数据库会有点过分,因为它将仅用于一次性传输。
数据分布在多个来源(MS Access .accdb、Excel 表格*.xlsx、分隔文件*.csv),并被分析、合并并准备为临时一次性 MS Access 数据库,然后转换为基于 SQL 的工作数据库,其中包括比我准备的要多得多。所以这是一个经典的 ETL 过程。
“压缩和修复”命令无济于事,因为它实际上只是大量数据,而不是留下大量垃圾的大量操作。“拆分Access数据库”过程似乎只是将查询/表单/报告与包含表的后端文件分开,但我需要拆分表本身,这给我带来了拆分文件之间的一致性问题。这不是接口(前端)和数据后端分离的问题;由于数据量很大,我需要对数据后端本身进行拆分。
我们将在未来 3 个月内将我们的数据中心从一个州迁移到另一个州。我想知道,尽可能快地迁移我们最大的数据库之一(即大约 7TB 的大小)的最佳方法是什么。以下是有关服务器和数据库的信息:
新数据中心:新泽西
服务器操作系统:Win 2008 R2 Datacenter
我们将在现有数据中心和新数据中心之间建立一个网络管道,但不会那么大。它也将被我们的基础架构团队每天传输的所有 VM 消耗掉。
我们在这个约 7TB 的数据库上运行了完整备份(即带有 iSpeed 设置的 Ideara SQLSafe),耗时约 9 小时,大小为约 630 GB。我们与负责管理我们在两个数据中心之间的 colo 迁移和网络管道的供应商进行了核实,他们说,不可能将超过 640 GB 的文件更快地复制到新的数据中心,我们将不得不执行 Full + Differential + TLOG 获取最新信息。
我们的问题是,我们每 30 分钟从所有商店系统获取一次数据(通过合并复制到家庭办公室),它会产生大量数据更改。如果我们尝试执行 Full + Differential + TLog,我们将遇到相同的大小问题和大量停机时间来复制 Differential,而且我们将不得不处理日志文件变满的问题,我们现有数据库服务器上的空间有限(因为我们不再获得 XIO 存储)。我们正在考虑 SAN 复制,但是,由于我们的 SAN 在新数据中心会有所不同,这对我们不起作用。
你们认为我们应该采取什么方法将这个约 7 TB 的数据库从我们现有的数据中心迁移到新的数据中心,同时停机时间最短?
**注意:如果我错过了信息方面的任何内容,请告诉我。
谢谢,
生命值
我正在精简一直使用char/varchar字段的数据库,其中binary/varbinary将是更好的选择(假设表示的数据是字节数组)。
我正在更改的字段之一用于许多其他表的外键约束。
我不能删除当前的 FK 约束,将列迁移到它的新类型,然后简单地重新创建 FK 约束,因为数据类型不匹配。
我应该采取什么方法来迁移它?你会怎么做?
我正在尝试从本地 MariaDB 迁移到 Docker 版本,这本质上应该像迁移到新的 SQL Server 一样简单。我已经通过很好地设置了 Docker 容器,但似乎无法导入我的“所有数据库”转储。
这就是我得到的:
mysql -u root -p < mariadb_alldb_*.sql
Enter password:
ERROR 1050 (42S01) at line 8022: Table 'user' already exists
Run Code Online (Sandbox Code Playgroud)
通过以下方式生成转储:
mysqldump -u root -p --all-databases --skip-lock-tables > mariadb_alldb_"$(date '+%F')".sql
Run Code Online (Sandbox Code Playgroud)
更新:每次都在新的 docker 容器上运行,并且我在从中导入的目录中创建了备份。
ls * | grep mariadb_alldb_
mariadb_alldb_2020-05-04.sql
Run Code Online (Sandbox Code Playgroud)
Update2:也许这与我的docker设置有关?
这是我的 docker cmd:
docker stop mariadb && docker rm mariadb
docker run -d --name="mariadb" \
-p 3306:3306 \
-e TZ="America/Whitehorse" \
-v "/opt/mariadb/conf/conf.d":"/etc/mysql/conf.d" \
-v "/opt/mariadb/backups":"/mnt/" \
--mount type=volume,dst=/var/run/mysqld,volume-driver=local,volume-opt=type=none,volume-opt=o=bind,volume-opt=device=/var/run/mysqld \
mariadb:latest …Run Code Online (Sandbox Code Playgroud) 我有两个几乎相同的(结构上)数据库:
原来的数据库在表分区可用之前就已经存在,所以他们找到的解决方案是创建第二个数据库,并在每年之后将所有旧数据迁移到其中。现在他们想再次合并两个数据库。
我做了一些研究,我发现两个数据库在表之间只有很小的结构差异,并且没有 IDENTITY 列。
因此,除了微小的结构差异之外,我认为最有可能将旧数据库中的值插入到第一个数据库中。
数据库其实有点大,有100多张表。
我想知道的是,使用 SSIS 来做这件事有意义吗,或者 SSIS 适合这种工作吗?还是我应该只编写 T-SQL 代码来完成这项工作?
作为一个附加问题,是否有比上述前两个选项更适合此类工作的工具?
migration ×10
sql-server ×4
postgresql ×3
barman ×1
blob ×1
ddl ×1
foreign-key ×1
innodb ×1
mariadb ×1
ms-access ×1
mysql ×1
oracle ×1
performance ×1
restore ×1
ssis ×1
view ×1