27.5 C
Firenze
venerdì, Settembre 5, 2025
Home Blog Page 3521

Liberare spazio su Microsoft SQL Server (log Transazioni)

0

Quando si crea un nuovo database, il modello di recovery che viene impostato di default è “FULL”: con questa modalità, per quel database verrà usato un log delle transazioni. Il log delle transazioni è un archivio che contiene tutte le operazioni fatte sul database.
per questo motivo avremo sempre un file NomeDatabase.MDF e un altro file NomeDatabase_log.LDF.

Quando le transazioni vengono salvate, nell’ambito di un normale programma di manutenzione del database, vengono anche cancellate dal file di log che quindi poi può essere “ristretto” per recuperare lo spazio su disco. Il problema nasce però dal fatto che il programma di backup / manutenzione non è attivo di default e di rado ci si ricorda di farlo manualmente. In questi casi, il file di log delle transazioni continua ad aumentare, e prima o poi finisce per riempire anche i dischi più capienti oppure finisce per arrivare al limite impostato

Per risolvere ci sono due scelte:

– attivare il backup e la manutenzione del file di log;
– impostare il metodo di recovery (nelle proprietà del database) a “SIMPLE”.
In questo modo le transazioni verranno cancellate non appena applicate al database

Comandi per risolvere manualmente la situazione

BACKUP LOG NomeDatabase WITH TRUNCATE_ONLY
Questo lancia un backup del log delle transazioni ma senza salvare i dati, cancellando le transazioni esistenti

DBCC SHRINKDATABASE ( ‘NomeDatabase’ )
Questo comprime tutti i file del db recuperando lo spazio libero. Se volete lavorare solo sul file di log anzichè su tutti i file del db, usate il comando

DBCC SHRINKFILE ( ‘NomeFileLogico’ )

Fate attenzione a:

  • usare il nome logico del file di log: lo trovate nelle proprietà del db
  • inserire tra apici (‘) i nomi del db o del file

Creare una RESERVATION DHCP da Riga di Comando.

Per creare una reservation sul DHCP da riga di comando si può utilizzare il comando NETSH come in questo esempio:

netsh DHCP server scope <Scope> add reservedip <IPaddress> <MACaddress> [ClientName] [ClientComment]

netsh dhcp server scope 192.168.0.0 add reservedip 192.168.1.129 0003EF159A6B My_PC “” BOTH

l’unico problema potrebbe essere che, su Windows 2008, sarà necessario eseguire il Prompt dei Comandi come AMMINISTRATORE.
Finchè lo si fa “manualmente” nessun problema ma in caso di scripting il problema potrebbe non essere banale, in quanto Avviare un prompt dei Comandi in modalità amministratore….potrebbe essere “dura” anche per VbScript.

Per risolvere il problema si può utilizzare il comando RUNNAS che può risolvere il tutto
Runnas

SOAP e Domain Controller Windows 2008

Personalmente…..non ci ho capito nulla
posso solo pensare che la stringa di inserimento sia questa:

<soapenv:Envelope
xmlns:soapenv=”https://www.w3.org/2003/05/soap-envelope”
xmlns:wsa=“https://www.w3.org/2005/08/addressing”>
<soapenv:Header>
<wsa:Action soapenv:mustUnderstand=“1”>
https://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse
</wsa:Action>
<wsa:RelatesTo>
urn:uuid:720f1d9c-5181-42c8-91ab-3deef105d0ff
</wsa:RelatesTo>
<wsa:To soapenv:mustUnderstand=“1”>
https://www.w3.org/2005/08/addressing/anonymous
</wsa:To>
</soapenv:Header>
<soapenv:Body>
<addata:user
xmlns:addata=“https://schemas.microsoft.com/2008/1/ActiveDirectory/
Data”
xmlns:ad=“https://schemas.microsoft.com/2008/1/ActiveDirectory”
xmlns:xsi=“https://www.w3.org/2001/XMLSchema-instance”
xmlns:xsd=“https://www.w3.org/2001/XMLSchema”>
<ad:objectReferenceProperty>
<ad:value xsi:type=“xsd:string”>
1e0f3427-bbcb-474d-a532-a2ba6168c4dc
</ad:value>
</ad:objectReferenceProperty>
<addata:lastLogon LdapSyntax=“LargeInteger”>
<ad:value xsi:type=“xsd:string”>
0
</ad:value>
</addata:lastLogon>
<addata:dSCorePropagationData
LdapSyntax=“GeneralizedTimeString”>
<ad:value xsi:type=“xsd:string”>
16010101000000.0Z
</ad:value>
</addata:dSCorePropagationData>
<addata:objectSid LdapSyntax=“SidString”>
<ad:value xsi:type=“xsd:base64Binary”>
AQUAAAAAAAUVAAAAbTIi8R3L2V3ypAE4pl-
MAAA==
</ad:value>
</addata:objectSid>
<addata:name LdapSyntax=“UnicodeString”>
<ad:value xsi:type=“xsd:string”>
TestUser1
</ad:value>
</addata:name>
<addata:objectClass LdapSyntax=“ObjectIdentifier”>
<ad:value xsi:type=“xsd:string”>
top
</ad:value>
<ad:value xsi:type=“xsd:string”>
person
</ad:value>
<ad:value xsi:type=“xsd:string”>
organizationalPerson
</ad:value>
<ad:value xsi:type=“xsd:string”>
user
</ad:value>
</addata:objectClass>
<ad:container-hierarchy-parent>
<ad:value xsi:type=“xsd:string”>
e4f8a504-d7df-4b63-a636-5642d3bf1cf6
</ad:value>
</ad:container-hierarchy-parent>
<ad:relativeDistinguishedName>
<ad:value xsi:type=“xsd:string”>
CN=TestUser1
</ad:value>
</ad:relativeDistinguishedName>
<ad:distinguishedName>
<ad:value xsi:type=“xsd:string”>
CN=TestUser1,DC=Fabrikam,DC=com
</ad:value>
</ad:distinguishedName
</addata:user>
<$1 td>

Non c’è stato modo di fare qualche TEST.
Ad ogni modo la porta 9389 del gateway di Active Directory è aperta e i WebServices sono in ascolto.
WinRM e WinRS (secondo me) non servono a nulla

Active Directory Web Services Overview (qui c’e da studiare per i prossimi mesi 😉
https://blogs.msdn.com/b/adpowershell/archive/2009/04/06/active-directory-web-services-overview.aspx

How to view SOAP XML messages to and from AD Webservices and Powershell
https://blogs.msdn.com/b/adpowershell/archive/2009/10/05/how-to-view-soap-xml-messages-to-and-from-ad-webservices-and-powershell.aspx
The following example shows a WS-Transfer Get [WXFR] operation. Both the SOAP request message and the SOAP response message are shown …. https://msdn.microsoft.com/en-us/library/dd303471(v=prot.10).aspx

Documenti in allegato!

US20100306277

[MS-ADDM]

WinRM and WinRS per la GESTIONE REMOTA di un SERVER

0

WinRm è un sistema di gestione “remota” per un server Windows. Da un “certo punto di vista” è un alias del comando PSEXEC. Ad esempio, può essere utilizzato per lanciare comandi PowerShell attraverso il protocollo HTTP.
WinRm, per essere utilizzato deve essere fatto SIA sul SERVER sia sul CLIENT.

Sul Server :
Avviare con c:> winrm quickconfig (aprirà una porta sul Firewall e avvierà il servizio)
c:> winrm e winrm/config/listener (questo comando darà una diagnostica e farà vedere che le default ports sono 5985 per HTTP e 5986 per HTTPS).
Impostare la BASIC Authentication : c:> winrm set winrm/config/service/auth @{Basic=”true”}
Impostare dati “non criptati” : c:> winrm set winrm/config/service @{AllowUnencrypted=”true”}
In caso di DOMINIO bisogna Utilizzare anche i TRUSTED HOST, con questo comando (esempio) : winrm set winrm/config/client @{TrustedHosts=”192.168.1.113″}

Sul CLIENT :
La configurazione è quasi la stessa
c:> winrm quickconfig
c:> winrm get winrm/config
c:> winrm set winrm/config/client/auth @{Basic=”true”}
c:> winrm set winrm/config/client @{AllowUnencrypted=”true”}
in più bisogna specificare i trusted HOST : c:> winrm set winrm/config/client @{TrustedHosts=”host1, host2, host3″}

per fare una DIAGNOSTICA di funzionamentod al CLIENT, in caso di DOMINIO bisogna utilizzare l’autenticazione KERBEROS, ovviamente dopo avere specificato sul server il TRUSTED HOST. Questo può essere un comando di diagnostica :

winrm identify -r:https://srv01.dominio.local:5985 -auth:kerberos -u:Administrator@dominio.local -p:passwd -encoding:utf-8
Se tutto va bene renderà una risposta del tipo :

IdentifyResponse
ProtocolVersion = https://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
ProductVendor = Microsoft Corporation
ProductVersion = OS: 6.1.7601 SP: 1.0 Stack: 2.0

Per avviare un CMD :
winrs -r:https://srv01.dominio.local:5985 -u:Administrator@dominio.local -p:passwd cmd.exe

Codici di Errore di SqlServer

0

Questi sono POSSIBILI Codici di ERRORE di SQLServer sul LOGIN :

2 e 5 – Invalid userid
6 – Attempt to use a Windows login name with SQL Authentication
7 – Login disabled and password mismatch
8 – Password mismatch
9 – Invalid password
11 e 12 – Valid login but server access failure
13 – SQL Server service paused
18 – Change password required

Merak Tool Creare ALIAS

per creare ALIAS da riga di comando su MERAK Mailserver con TOOL si può utilizzare un comando come questo:

tool create account toolusage;mio@sitoweb.eu u_password “toolpwd122”

separando il nome utente con ;

Merak : modifica (massiva) del TIPO di Casella

Per modificare la TIPOLOGIA di casella (imap, pop3, ecc.) si può intervenire direttamente sul database con questa istruzione:

UPDATE Users SET U_AccountType = ‘0’ WHERE U_Domain = ‘miosito.it’

basta Ricordare che:

AccountType = ‘0’ > pop3
AccountType = ‘2’ > imap
AccountType = ‘1’ > imap e pop3

The database principal owns a schema in the database, and cannot be dropped.

0

E’ possibile, in fase di cancellazione di un utente, imbattersi in questo errore:

Drop failed for User ‘xxxxxx’. (Microsoft.SqlServer.Smo)
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
The database principal owns a schema in the database, and cannot be dropped. (Microsoft SQL Server, Error: 15138)

questo succede perchè l’utente è ancora MEMBRO di qualche Schema (nel database) e per cancellarlo bisogna prima rimuoverlo da questi schemi.
Utilizzare come SQL nel DB :

SELECT sc.name
FROM sys.schemas sc
WHERE sc.principal_id = USER_ID(‘xxxxx’)

per vedere in che schemi è l’utente. Dopodichè assegnare a DBO questi schemi in modo da “estrometterlo”

ALTER AUTHORIZATION
ON SCHEMA::db_owner
TO dbo

Unable to Relay

0

Unable to Relay è un problema di server della posta in uscita.
Lo puoi trovare in più casi
1) le impostazioni LOCALI di Outlook per il server della posta in uscita sono sbagliate (mancano user e pass per l’autenticazione)
2) le impostazioni LOCALI di Outlook per il server della posta in uscita sono “anche corrette” ma stai usando un SMTP che magari non ti fa passare (es sei connesso TIN spedisci con infostrada)
3) se è un server che ha un SMTP di inoltro….l’smtp di inoltro non ti fa passare.
Poi i casi possono essere anche altri……ma in linea di massima è un errore che ti dice che c’è qualcosa che non va in posta in uscita, non sei riconosciuto, quindi non passi!

Il set di backup include il backup di un database diverso dal database ‘xx’ esistente

0

E’ possibile, in fase di ripristino ricevere questo errore :

System.Data.SqlClient.SqlError: Il set di backup include il backup di un database diverso dal database ‘xxx’ esistente. (Microsoft.SqlServer.Smo)

questo capita perchè il Db è diverso, ma per aggirarlo è sufficiente andare in OPZIONI e utilizzare la funzione SOVRASCRIVI DATABASE ESISTENTE

 

Ultime dal Nostro BLog