I have a requirement to backup salesforce data to any third party on daily basis and it should be dynamically.I do't want to use any backup service provider. To achieve this I integrated salesforce with google drive to create and upload csv file to drive but I think it's not a good solution for long term since my org has more then 5 million record that should be backed-up daily on drive. Can you please suggest any better solution for this?
There are a lot of dataloader tools that can be scheduled to export data. If you want to export daily and without manual intervention this may be a good solution.
For example Dataloader.IO can be used: https://dataloader.io/scheduling
Or Jitterbit (= more enterprise level): https://success.jitterbit.com/display/DOC/Creating+a+Schedule
Update after comment of @David Gillen: You can also use the older data loader program on the command line with config files rather than through it's UI; and then set up a scheduled task/cron job, to run it on whatever schedule you prefer.
If the third party can make the callouts to salesforce api then its simple thing to do: 1. Create a rest webservice in salesforce which will export the data based on the query parameters received. 2. Query the records based on the parameter received and serilize the list and return the serilized string to the third party. 3. After getting this response from sf deserilize the response and save to your database. visit the link: Rest webservices Hope this helps you!
Let me know if you need more information.