我按照以下步骤移动了 postgresql 的数据目录:
但是当我运行:“pg_ctl start”时,出现以下错误。有人可以帮我找出错误吗?
服务器启动 postgres@Server:/usr/lib/postgresql/9.1/bin$ postgres 无法访问服务器配置文件“/home/destination_data_directory/postgresql.conf”:没有这样的文件或目录
我已经在 SO 上问过这个问题,但也许那是错误的位置。对于重复发帖表示歉意,但这个问题可能在这里有更好的受众。
原来的问题是:/sf/ask/1793350331/
正文如下。谢谢。
当运行 postgresql [9.3]“COPY TO”功能时,postgres 用户创建一个文件。我已经告诉它把文件放在 tmp 目录中(尽管如果需要的话可以更改)。
这是作为 cron 作业的一部分运行的,用户是专门为此任务设置的“导出”用户。最终目标是导出的文件最终位于 /home/export/created_file.csv 中。
1)postgres如果不将文件夹设置得过于宽松,则无法将导出的文件直接存储到另一个用户的主目录中。
2) 导出用户可以将文件从其/tmp主目录复制到其主目录,但随后无法清理(删除)postgres中拥有的文件/tmp。
这是一个日常过程,因此需要以某种方式删除旧文件。我可以添加一个 cron 作业来清理文件,但我希望有一个更干净的解决方案 - 要么是一种更改创建文件的权限的方法postgres,要么是某种方式为导出用户提供能够删除的额外权限该文件在创建之前。
然而,为导出用户提供与postgres一般情况相同的权限并不是一种选择,因为这样它将可以自由控制数据库。
任何建议,无论是基于 unix 还是基于 postgres,都将非常受欢迎,谢谢。
我刚刚重命名了主机名并重新启动了服务器,现在 mysql 5.6 无法启动。(Debian 7 + dotdeb)
150312 20:40:15 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql.mnt
2015-03-12 20:40:15 13855 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)
2015-03-12 20:40:15 13855 [Warning] Buffered warning: Changed limits: table_cache: 431 (requested 2000)
^G/usr/sbin/mysqld: File '/var/export/websrvDB.log/websrvDB-bin.index' not found (Errcode: 13 - Permission denied)
2015-03-12 20:40:15 13855 [ERROR] Aborting
2015-03-12 20:40:15 13855 [Note] Binlog end
2015-03-12 20:40:15 13855 [Note] /usr/sbin/mysqld: Shutdown complete
Run Code Online (Sandbox Code Playgroud)
但这没有意义
/var/export/websrvDB.log 有 mysql:mysql 700 并且其中的所有文件都有 600 和 mysql:mysql
所有其他所有权看起来也很好,并且当我关闭二进制日志时服务器启动。
日志文件夹中有 …
在 Windows 上的 SQL Server 中,如果您需要进行备份但实际上并不关心该备份,那么将数据库备份到NULL 设备是很常见的事情。例如,这对于在开发环境中更改恢复模型很有用。
备份语句类似于:
BACKUP DATABASE [xyz] TO DISK = 'NUL:';
Run Code Online (Sandbox Code Playgroud)
在用于 Linux 的 SQL Server 中,人们可能会认为/dev/null这在逻辑上是等效的,但是如果您尝试这样做:
已处理数据库 'xyz' 的 125224 页,文件 1 上的文件 'xyz01'。
处理了数据库 'xyz' 的 2 页,文件 1 上的文件 'xyzLog'。
消息 3634,级别 16,状态 2,第 16 行
操作系统返回在“/dev/null”上尝试“DiskChangeFileSize”时出现错误“31(连接到系统的设备无法运行。)”。
消息 3013,级别 16,状态 1,第 16 行
BACKUP DATABASE 异常终止。
上面的命令似乎会重置 中的log_reuse_wait和log_reuse_wait_desc列sys.databases,所以也许/dev/null确实有效。
我在 RedHat Enterprise Linux 7.2 上使用 Linux v14.0.900.75 上的 SQL Server。
我们正在尝试将 SQL 服务器数据库从 Windows 移动到 Linux。但是我们在迁移时面临的问题很少。
RESTORE FILELISTONLY FROM DISK =N'/var/opt/mssql/data/backup_file_name.bak'
RESTORE DATABASE DB_NAME
FROM DISK = N'/var/opt/mssql/backup_file_name.bak' WITH FILE = 1,
MOVE N'DB_NAME' TO N'/var/opt/mssql/data/DB_NAME.mdf',
MOVE N'DB_NAME_Log' TO N'/var/opt/mssql/data/DB_NAME.ldf',
NOUNLOAD, REPLACE, STATS = 1
GO
Run Code Online (Sandbox Code Playgroud)
运行这个我或多或少地得到一个错误在于:
文件 XX_FlatFline 无法恢复到PATH_IN_WINDOWS {.....mdf}。使用 WITH MOVE 标识文件的有效位置。
MDF 和 LDF 文件都出现错误。上面错误中显示的windows路径是mdf和ldf文件在windows机器中的位置。
有人可以帮助我了解这里出了什么问题吗?当我将转储恢复到新数据库时,为什么 Windows 路径仍然重要?
警告:我是 SQL Server 的新手。
我不能使用删除数据库
dropdb
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ERROR: must be owner of database
Run Code Online (Sandbox Code Playgroud)
但是psql \l我看到用户管理员(删除数据库的那个)
admin=CTc/postgres
Run Code Online (Sandbox Code Playgroud)
除了我想删除的数据库。
Linux 中的 PostgreSQL 9.x 有什么问题?
在我在 Linux 上默认安装的 SQL Server 2017 中,/var/opt/mssql/data我看到以下数据库,
master.mdf- master 数据库- 记录 SQL Server 实例的所有系统级信息。model.mdf-模型数据库- 用作在 SQL Server 实例上创建的所有数据库的模板。对模型数据库所做的修改,例如数据库大小、排序规则、恢复模型和其他数据库选项,将应用于之后创建的任何数据库。msdbdata.mdf- msdb 数据库- SQL Server 代理使用它来安排警报和作业。tempdb.mdf- tempdb 数据库- 是用于保存临时对象或中间结果集的工作区。所有这些数据库实际上都有很好的文档记录。然而,我的安装对资源数据库的遗漏很突出。Resource Database 的描述似乎表明它是自己的数据库,
资源数据库是一个只读数据库,其中包含 SQL Server 附带的所有系统对象。SQL Server 系统对象(例如 sys.objects)在物理上持久保存在 Resource 数据库中,但它们在逻辑上出现在每个数据库的 sys 架构中。资源数据库不包含用户数据或用户元数据。
更令人困惑的是,对于SQL Server 2012,文档说,(不是 2017,这是我正在运行的)
资源的物理性质
Resource 数据库的物理文件名是 mssqlsystemresource.mdf 和 mssqlsystemresource.ldf。这些文件位于
<drive>:\Program Files\Microsoft SQL Server\MSSQL11.<instance_name>\MSSQL\Binn\. 每个 SQL Server …
我无法在 apt-get 更新后立即运行 mssql。这是由于脚本错误(如下:)The file "C:\Install\SqlTraceCollect.dtsx" does not exist?关于修复的任何建议?我不知所措。
sudo systemctl start mssql-server
sudo systemctl status mssql-server
? mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled)
Active: active (running)
...
sudo systemctl status mssql-server
? mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled)
Active: inactive (dead) (Result: exit-code) since Wed 2018-03-21 22:46:15 PDT; 1min 27s ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Process: 2977 ExecStart=/opt/mssql/bin/sqlservr (code=exited, status=255)
Main PID: 2977 …Run Code Online (Sandbox Code Playgroud) 这是输出,
$ sudo apt install -y mssql-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
mssql-server : Depends: libjemalloc1 but it is not …Run Code Online (Sandbox Code Playgroud) Docker SQL Server 2017 容器 @latest。使用master数据库。
我面临的错误如下:
[S00019][15208] The certificate, asymmetric key, or private key file is not valid or does not exist; or you do not have permissions for it.
我发现最接近这个确切问题的是Stackoverflow 上的这个问题。然而,答案对我不起作用。这个问题有类似的答案。
所以通过错误的部分:
无论我尝试什么,我都无法获得要恢复的证书。我已经搜索了GitHub 问题无济于事,所以我不认为这是一个错误。我一定做错了什么。
相关代码:
--on Prod
BACKUP CERTIFICATE sqlserver_backup_cert
TO FILE = '/var/opt/mssql/certs/sqlserver_backup_cert.cer'
WITH PRIVATE KEY (
FILE = '/var/opt/mssql/certs/sqlserver_backup_cert.key',
ENCRYPTION BY PASSWORD = 'foobar'
)
Run Code Online (Sandbox Code Playgroud)
--on Test
CREATE CERTIFICATE …Run Code Online (Sandbox Code Playgroud) linux ×10
sql-server ×6
postgresql ×3
ubuntu ×3
certificate ×1
copy ×1
docker ×1
export ×1
installation ×1
maintenance ×1
mysql ×1
mysql-5.6 ×1
ssms ×1
windows ×1