Есть больше различий между ereg()
и preg_replace()
, чем просто синтаксис:
FALSE
Не соответствует : ereg()
возвращает FALSE
, preg_match()
возвращает 0
В соответствии с : ereg()
возвращает длину строки или 1
, всегда возвращается preg_match()
1
(b)
в ...a(b)?
), соответствующий элемент в ereg()
будет FALSE
, а в preg_match()
он не будет установлен вообще. Если кто-то не достаточно храбр, чтобы преобразовать его ereg()
в preg_match()
, он или она может использовать mb_ereg ( ) , который по-прежнему доступен в PHP 7.
База данных часто работает как служба под учетной записью без доступа к сети. Если это так, то вы не сможете восстановить его непосредственно по сети. Либо резервная копия должна быть скопирована на локальный компьютер, либо служба базы данных должна запускаться как пользователь с надлежащим доступом к сети.
Вы можете использовать SP xp_cmdshell для сопоставления сетевого диска для сервера sql, после чего он появится в окне просмотра файлов.
EXEC xp_cmdshell 'NET USE Z: SERVERLOCATION PASSWORD /USER:DOMAIN\USERNAME'
подробнее здесь: Восстановление базы данных из сети Драйв
Работал для меня!
Убедитесь, что пользователь, запускающий ваш SQL services
в "Services.msc"
, является активным каталогом "Domain User"
, это устранит проблему.
Вы не можете сделать это через GUI SSMS, но вы можете сделать это, используя скрипт. RESTORE DATABASE из DISK = '\ unc \ path \ filename' Если вам нужно автоматизировать этот процесс, лучше всего настроить SQL Server Job и запустить его как пользователя с доступом к файлу.
Мне приходилось делать это несколько раз, и есть только два варианта, о которых я знаю. Скопируйте файл локально на SQL Server или на сервере SQL создайте сопоставленный сетевой диск для общего ресурса, который содержит файл резервной копии.
В качестве побочного примечания, если вы выполняете SQL на виртуальной машине, часто бывает немного хлопот, чтобы просто временно установить новый диск на виртуальной машине с достаточным пространством для копирования ваших файлов резервных копий, выполните восстановление с этого нового локальную копию, а затем удалить временный диск.
Это может быть полезно, если остановка / запуск службы SQL для изменения ее учетной записи является проблемой.
Кроме того, вам необходимо убедиться, что служба SQL Server работает как пользователь, имеющий сетевой доступ, и разрешения для общего ресурса, в котором находится файл резервной копии. «Локальная система» не будет иметь прав доступа к сети.
Создайте общий диск на компьютере с резервными копиями, скажем, server1 имеет резервные копии в папке «Резервные копии». Предоставьте полный контроль над учетной записью, на которой работает SQL Server. На сервере, который вы хотите восстановить для запуска SSMS, перейдите в базу данных восстановления и выберите «От устройства». В диалоговом окне «Locate Backup file-« Server »и удалите что-либо в поле« Выбранный путь », а в поле« Имя файла »укажите полный путь так:« \ server \ backups \ db.bak ». По крайней мере, это работало для меня при переходе с 05 на 08. Не предпочтительный метод, потому что любая икота сети может вызвать проблему с восстановлением.
У вас есть несколько вариантов использования сетевого файла в качестве источника резервного копирования
-- allow changes to advanced options
EXEC sp_configure 'show advanced options', 1
GO
-- Update currently configured values for advanced options.
RECONFIGURE
GO
-- To enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
-- Update currently configured values for advanced options.
RECONFIGURE
GO
EXEC xp_cmdshell 'NET USE Z: \\Srv\Path password1 /USER:Domain\UserName'
Затем диск Z : будет отображаться в студии Server Managment или просто
RESTORE DATABASE DataBaseNameHere FROM DISK = 'Z:\BackNameHere.BAK'
GO
NET USE
с текущим пользователем службы SQL Server решает проблему. Этот ответ действительно полезен.
– JB.
17 June 2014 в 10:59
EXEC sp_configure 'xp_cmdshell', 0
после этого, чтобы отключить xp_cmdshell? (по соображениям безопасности или еще много чего).
– Jim Aho
14 March 2017 в 13:10
EXEC xp_cmdshell 'NET USE...
перед доступом к сети; см. другие ответы .. – JB. 17 June 2014 в 11:01